MSXML ASP经典的Feed页面 - 超时和ReadyState卡住了1

问题描述:

我目前正在使用MSXML读取外部XML提要的经典ASP(VB)中的页面上工作。
虽然这个工作没有问题(readyState的4到达)在本地主机上的我的电脑,一旦代码是在服务器上,超时,与此错误:MSXML ASP经典的Feed页面 - 超时和ReadyState卡住了1

msxml3.dll error '80072ee2' 

The operation timed out 

我试着做实验setTimeouts,但无济于事。
我想知道它是否可能是IIS中的设置,或者可能是卸载的功能? 代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> 

<%' setup the URL 
baseUrl ="http://w1.weather.gov/xml/current_obs/index.xml" 

'/////Set http = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0") 
Set http = Server.CreateObject("MSXML2.ServerXMLHTTP") 


Set myXML =Server.CreateObject("MSXML2.DOMDocument.3.0") 

myXML.Async=False 

http.open "GET", baseUrl, False 

http.setRequestHeader "PREFIX", "prefix" 

http.setTimeouts 30000, 60000, 30000, 240000 


' send the HTTP data 
http.send() 

response.write("<BR>ReadyState is... "&http.ReadyState&"<BR>") 

if http.ReadyState<>4 then 
    http.waitForResponse 3 
response.write "server is down!" 
response.End() 
else 


if Not myXML.load(http.responseXML) then 'an Error loading XML 
     returnString = "" 
     response.write("<br>error<br>") 
    Else 'parse the XML 

Set nodesStationIndex=myXML.documentElement.selectNodes("//wx_station_index") 


For each wx in nodesStationIndex 

    Set nodesStation=wx.selectNodes("station") 
    For each NS in nodesStation   

     Set nodesStatID=NS.selectNodes("station_id")  
     For each NS_ID in nodesStatID 
      response.write("<BR>"&NS_ID.text&"<BR>") 
      'response.flush() 

     next 

    next 

next   


    End If 'end - XML load error check 



end if 'end - ReadyState check 


%> 
+0

不要在同一脚本中混合使用MSXML版本。如果你调用'MSXML2.DOMDocument.3.0',那么调用'MSXML2.ServerXMLHTTP.3.0',如果你调用'MSXML2.DOMDocument.6.0'然后调用'MSXML2.ServerXMLHTTP.6.0'。使用6.0除非你有特定的理由不要。 – John

+0

谢谢。我已经纠正了这个问题,但仍然存在超时问题。有谁知道这个很好的故障排除步骤?日志表示发生了500错误,但没有更多信息可用。 我已经看到这个超时问题的不少地方,没有解决。 – buck1112

我想跟进这一点。
事实证明,我们控制集中权限等的本地(中央)IT部门的确在阻止XML提要所需的URL。
现在它已畅通无阻,并且代码(上述)成功运行。

感谢大家的帮助。