2010-02-11 3 views
1

을 파일로 작성하고 포스트는이 기능을 "PostTo"게시 XML과 내가 Page1.asp를 데이터를 변환 Page1.asp를 위해 데이터를 게시 페이지를 index.html을 기능을

페이지 2와 Page2.asp하기 .ASP는에 생각한다 : 데이터가 "WriteToFile" 와 data.txt로하는 기입의 문제 : WriteToFile 함수는 파일에 어떤 일을 기록하지 않을 때 호출 페이지 2 그러나 직장에서 때

어떤 제안 PAGE1

에서 전화?

Function PostTo(Data, URL) 
    Dim objXMLHTTP, xml 
    ''# On Error Resume Next 
     Set objXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP.3.0") 
     objXMLHTTP.Open "POST", URL, False 
     objXMLHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
     objXMLHTTP.Send Data 
     If objXMLHTTP.readyState <> 4 then 
     objXMLHTTP.waitForResponse 10 
     End If 
     If Err.Number = 0 AND objXMLHTTP.Status = 200 then 
     PostTo = objXMLHTTP.responseText  
     else 
     PostTo = "Failed" 
     End If 
     '' # if xhttp.Status<>200 then err.Raise vbObjectError, , "Server returned http code " & xhttp.Status  
      Set objXMLHTTP = Nothing 
    End Function 

답변

0

완료. 다른 가상 폴더의 ASP에 POST해야합니다. ASP가 동일한 가상 폴더에 있으면 ASP가 응답하지 않습니다. 브라우저를 닫은 후에도 요청이 대기 상태로 유지되므로 ASP 및 다른 ASP는 계속 중단됩니다. IIS를 다시 시작하거나 컴퓨터를 다시 시작해야합니다.

1

발생한 문제는 다른 가상 폴더로 해결되는 것이 아니라 다른 응용 프로그램이어야합니다. ASP 디버깅을 사용하지 않으면 작동했을 것입니다.

문제는 page1이 page2에 대한 요청을하는 동안 실행중인 스레드가 응답을 기다리는 동안 차단된다는 것입니다. page2에 대한 요청은 다른 스레드에서 실행됩니다.

ASP 디버깅이 설정되면 ASP는 요청에 응답하기 위해 단일 스레드 만 사용합니다. 따라서 page2에 대한 요청이 도착하면 사용 가능한 유일한 스레드가 여전히 page1을 실행 중이므로 page2에 대한 요청이 대기열에 들어갈 수 있기 때문에 실행될 스레드를 찾을 수 없습니다. 그러나 page1이 완료 될 때까지 page1이 완료되지 않으며 page1이 완료 될 때까지 page2가 완료되지 않아 사용 가능한 단일 스레드를 사용할 수 없습니다. 응용 프로그램이 중단되어 다시 설정해야합니다.

정상적인 사용법에서는 프로세서 당 스레드 수가 25이므로이 상황이 훨씬 더 어려워집니다. 그러나이 바쁜 사이트가있는 경우이 "교착 상태"(또는 최소한의 피해 성능)에 도달 할 수있는 "자체 요청"이 가능합니다.

+0

좋은 물건. 감사 – FasoService