我将数据发布到page1.asp的index.html页面 page1.asp转换数据并使用此函数“PostTo”将其发布到Page2.asp
Page2.asp假设: 使用“WriteToFile”将数据写入data.txt 问题:当从page2调用时,WriteToFile函数不会在文件中写入任何内容 但是从第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 :(得分:1)
您遇到的问题不仅仅是由不同的虚拟文件夹解决,而是需要一个不同的应用程序。如果你关闭了ASP调试,你会发现它可以工作。
问题是,当page1向page2发出请求时,正在运行的线程被阻塞,等待响应。然后,对page2的请求将在另一个线程上运行。
启用ASP调试时,ASP将仅使用单个线程来响应请求。因此,当对page2的请求到达时,它找不到要运行的线程,因为唯一可用的线程仍在运行page1,因此对page2的请求将排队。但是,page1永远不会完成,直到page2完成,page2才能完成,直到page1完成,以便它可以使用可用的单个线程。您的应用程序已挂起,您需要重置以清除它。
在正常使用情况下,每个处理器可以获得25个线程,因此这种情况要难得多。但是,如果你有繁忙的网站,很多这种“自我请求”可能会导致这种僵局(或者最严重的损害性能)。
答案 1 :(得分:0)
完成。 你应该POST到不同的虚拟文件夹中的ASP。如果ASP位于同一虚拟文件夹中,则ASP停止响应(挂起)。关闭浏览器后,该ASP和其他ASP将继续挂起,因为即使您关闭浏览器,请求也会保持排队状态。您必须重新启动IIS或重新启动计算机。