0

有很多关于 msxml3.dll 中的 80072ee2“操作超时”错误的问题,但大多数问题都是通过将请求的 URL 移动到不同的应用程序池来解决的。但是,我们已经这样做了,并且仍然会定期出现此错误。

我们正在运行 Windows 2008 服务器和 IIS7.5 - 该网站是经典 ASP,代码是:

set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
xmlhttp.open "GET", "http://www.mysite.co.uk/_search/search.php", false
xmlhttp.send ""
strResponseText = xmlhttp.responseText
set xmlhttp = nothing

文件夹“_search”是一个虚拟文件夹,设置为使用与主站点不同的应用程序池。这是一个繁忙的站点,我们不会每次调用它时都会超时......但是一旦你得到一个,通常会有很多连续的。我们知道这种情况正在发生,因为我们正在网站上记录 500 错误。

有没有人有任何想法(请不要建议重写经典的 ASP 或 PHP - 目前不可能)?

谢谢

4

2 回答 2

2

您的代码看起来非常好。不过,您可以尝试两件事。

第一次尝试

Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")

这可能没有任何区别,但你是 msxml6.dll - 它存在于 IIS7 上 - 而不是旧的 msxml3.dll

其次,如果您有远程桌面访问权限,请查看当您尝试从服务器自己的 IE 副本访问http://www.mysite.co.uk/_search/search.php时会发生什么。我遇到过这样的情况,您无法通过外部 URL 看到服务器自己托管的站点,而您必须使用 localhost 或 127.0.0.1

于 2014-01-15T21:00:37.653 回答
0

我通过创建一个具有相同物理路径域名等但不同端口号(如 81)xmlhttp.open "GET"、" http://www.mysite.co.uk:81/_search/search. php ",错误

于 2016-11-18T13:46:50.657 回答