MSXML ASP Классическая страница канала - время ожидания и ReadyState застрял на 1
В настоящее время я работаю над страницей в Classic ASP (VB), которая использует MSXML для чтения внешнего XML-канала.
Хотя это работает без проблем (достигается ReadyState 4) в localhost на моем компьютере, когда код находится на сервере, время ожидания истекает с этой ошибкой:
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
%>
1 ответ
Решение
Я хотел развить это.
Оказывается, что наш местный (центральный) ИТ-отдел, который контролирует централизованные разрешения и т. Д., Действительно блокировал URL-адрес, необходимый для подачи XML.
Теперь он разблокирован, и код (выше) работает успешно.
Спасибо всем за вашу помощь.