经典Asp应用程序池挂起并生成冻结

时间:2014-09-09 04:56:31

标签: asp-classic

Dim objXMLHTTP,xml,gString 
Set xml = Server.CreateObject("Microsoft.XMLHTTP")
 xml.Open "GET", "http://www.ourdomain.com/checkout/receiptdisplay.asp?orderid=" & ORDERNUMBER , False
xml.Send
ObjSendMail.HTMLBody    =   xml.responseText  
Set xml = Nothing

我经常谈论的情况是,由于某种未知的原因,IIS应用程序池挂起,大多数经典的ASP站点都没有加载(永远加载),然后我必须回收应用程序池才能完成所有工作。

我将defaultAppPool用于网站。

1 个答案:

答案 0 :(得分:0)

如果某些部分的内存密集程度高于其他部分,则将应用程序分隔到不同的应用程序池中。您可以使用更新的版本,而不是使用导致您出现问题的Microsoft.XMLHTTPhttp://msdn.microsoft.com/en-us/library/ms766431%28v=vs.85%29.aspx

另一方面,如果您正在对同一应用程序池中的同一网站进行HTTPRequests,您将遇到线程匮乏,这将导致此类问题。要帮助解决此问题,您需要将它们分隔在自己的应用程序池中,如下所示:

HTTPRequest脚本应位于一个应用程序池

并且您的receiptdisplay.asp脚本应位于不同的应用程序池中。

Microsoft更详细地说明了为什么要在此处执行此操作: Do Not Send ServerXMLHTTP or WinHTTP Requests to the Same Server