与服务器的连接异常终止xmlhttp

时间:2011-09-30 14:19:15

标签: web-services asp-classic xmlhttprequest

我在与此webservice相同的服务器(不同的网站)中有这个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'

与服务器的连接异常终止

我搜索了这个问题,认为这可能是我可以轻松解决的一些小问题,但我遇到了一些问题。要让它发挥作用并不容易。

如果我们从其他任何地方运行同一页面,那么它就可以了。

有什么想法吗?

5 个答案:

答案 0 :(得分:7)

此错误代码为ERROR_INTERNET_CONNECTION_ABORTED。最常见的原因是防火墙或防病毒干扰连接,代理连接数据。我也可能由名称解析问题引起 - 例如,如果主机名在本地解析为127.0.0.1且Web服务器仅绑定到公共IP地址。

答案 1 :(得分:1)

另一种可能性;远端服务器可能是基于浏览器代理字符串过滤(和丢弃)请求,以防止编程抓取。

当您在常规浏览器中请求该URL时会发生什么?

答案 2 :(得分:0)

当我收到此错误时,事件日志表明w3wp.exe(IIS应用程序池)已崩溃。

使用Visual Studio,我打开了事件查看器提到的内存转储文件,并且“异常信息”显示了消息“线程耗尽了其堆栈”。

原来,该代码具有一个StackOverflowException,该异常使应用程序池崩溃。

答案 3 :(得分:0)

某些服务器需要设置 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 :(得分:0)

(回答一个旧主题,因为它是该消息在Google中的第一个结果)

我刚遇到这个问题。原来,我正在发布一个空字符串:

myString = FunctionThatWasReturningEmptyString()
set oHTTP = CreateObject("Msxml2.ServerXMLHTTP")
oHTTP.open "GET", sUrl, false
oHTTP.send myString

一旦我修复了返回一个空XML集而不是一个空字符串的函数,我的错误就消失了