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
%>
答
我想跟进这一点。
事实证明,我们控制集中权限等的本地(中央)IT部门的确在阻止XML提要所需的URL。
现在它已畅通无阻,并且代码(上述)成功运行。
感谢大家的帮助。
不要在同一脚本中混合使用MSXML版本。如果你调用'MSXML2.DOMDocument.3.0',那么调用'MSXML2.ServerXMLHTTP.3.0',如果你调用'MSXML2.DOMDocument.6.0'然后调用'MSXML2.ServerXMLHTTP.6.0'。使用6.0除非你有特定的理由不要。 – John
谢谢。我已经纠正了这个问题,但仍然存在超时问题。有谁知道这个很好的故障排除步骤?日志表示发生了500错误,但没有更多信息可用。 我已经看到这个超时问题的不少地方,没有解决。 – buck1112