我在与此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'
与服务器的连接异常终止
我搜索了这个问题,认为这可能是我可以轻松解决的一些小问题,但我遇到了一些问题。要让它发挥作用并不容易。如果我们从其他任何地方运行同一页面,那么它就可以了。
有什么想法吗?
答案 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集而不是一个空字符串的函数,我的错误就消失了