#web-services #asp-classic #xmlhttprequest
#веб-службы #asp-классический #xmlhttprequest
Вопрос:
У меня есть эта страница asp test1.asp на том же сервере (другой веб-сайт), что и этот веб-сервис. Дело в том, что когда я пытаюсь запустить этот код
sUrl = "http://chat.xxxxx.com/UCWebServices/Chat.asmx/GetChatQueueByAddress?queueAddress=SALESCHAT"
result = HTTPPost(sUrl)
response.Write result
Function HTTPPost(sUrl)
set oHTTP = CreateObject("Msxml2.ServerXMLHTTP")
oHTTP.open "GET", sUrl,false
oHTTP.send <-- it fails here <-- it fails here <-- it fails here <--
if oHTTP.Status = 200 Then
HTTPPost oHTTP.responseText
End if
End Function
%>
я получаю следующую ошибку
msxml3.dll ошибка ‘80072efe’
Соединение с сервером было прервано аварийно
я погуглил эту проблему, думая, что, возможно, это была небольшая ошибка, которую я мог бы легко решить, но у меня возникли некоторые проблемы. Заставить его работать непросто.
если мы запускаем ту же страницу из другого места, то это работает.
Есть идеи?
Ответ №1:
Этот код ошибки ERROR_INTERNET_CONNECTION_ABORTED
. Наиболее распространенными причинами являются брандмауэр или антивирус, мешающий соединению, прокси-сервер, искажающий данные соединения. Это также может быть вызвано проблемой разрешения имен — например, если имя хоста локально преобразуется в 127.0.0.1, а веб-сервер привязан только к общедоступному IP-адресу.
Ответ №2:
Другая возможность; сервер на дальнем конце может фильтровать (и отбрасывать) запросы на основе строк агента браузера, чтобы предотвратить программную очистку.
Что происходит, когда вы просто запрашиваете этот URL-адрес в обычном браузере?
Ответ №3:
Некоторым серверам требуется заголовок content-length, установленный для правильной работы HTTP POST. В нашем случае (с использованием ServerXMLHTTP) это было необходимо:
xmlhttp.Open "POST", URL , false
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp.setRequestHeader "Content-Length", Len(postdata)
Ответ №4:
(отвечаю на старый поток, потому что это первый результат для этого сообщения в Google)
Я только что столкнулся с этой проблемой. Оказалось, что я отправлял пустую строку:
myString = FunctionThatWasReturningEmptyString()
set oHTTP = CreateObject("Msxml2.ServerXMLHTTP")
oHTTP.open "GET", sUrl, false
oHTTP.send myString
Как только я исправил функцию, чтобы возвращать пустой набор XML вместо пустой строки, моя ошибка исчезла
Ответ №5:
Когда я получил эту ошибку, в журналах событий указано, что w3wp.exe (пул приложений IIS) произошел сбой.
С помощью Visual Studio я открыл файл дампа памяти, о котором упоминал Event Viewer, и в «Информации об исключении» появилось сообщение «Поток израсходовал свой стек».
Оказалось, что в коде было StackOverflowException, которое приводило к сбою пула приложений.