2010-02-11 101 views
1

我的index.html是發佈數據頁到Page1.asp的 Page1.asp的轉換數據,並張貼使用此功能「PostTo」發佈XML並寫入文件功能

第2頁到Page2.asp .asp的是假設: -write中的數據與「將writeToFile」 DATA.TXT問題:將writeToFile功能不寫任何東西在文件中時,從第2頁 但工作電話時,從第1頁

任何建議電話?

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

完成。 你應該POST到一個不同的虛擬文件夾中的ASP。如果ASP位於同一個虛擬文件夾中,則ASP停止響應(掛起)。關閉瀏覽器後,該ASP和其他ASP會繼續掛起,因爲即使關閉瀏覽器,請求仍然排隊。您必須重新啓動IIS或重新啓動計算機。

1

您遇到的問題不僅僅是由一個不同的虛擬文件夾解決,但它需要是一個不同的應用程序。如果你已經關閉ASP調試,你會發現它會起作用。

問題是,雖然page1向page2發出請求,但它正在運行的線程被阻塞,等待響應。然後,對page2的請求將在另一個線程上運行。

ASP調試打開時ASP將只使用一個線程來響應請求。因此,當對page2的請求到達時,找不到要運行的線程,因爲唯一可用的線程仍在運行page1,所以對page2的請求將排隊。然而,page1將永遠不會完成,直到page2完成並且page2在page1完成之前無法完成,以便它可以使用可用的單個線程。您的應用程序已掛起,您需要重置以清除它。

在正常使用情況下,每個處理器可以獲得25個線程,所以這種情況很難實現。但是,如果你有很多這種「自我請求」的網站在忙碌的情況下,可能會遇到這種僵局(或者說性能損失最小)。

+0

好東西。謝謝 – FasoService 2010-02-13 19:51:19