the connection with the server was terminated abno

2019-06-19 07:54发布

问题:

I have this asp page test1.asp in the same server (different website) than this webservice. Thing is when i try to run this code

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
%>

i get the following error

msxml3.dll error '80072efe'

The connection with the server was terminated abnormally

i googled up this issue thinking that maybe this was some little bs i could easily solve, but i am getting into some problems. It's not easy to make it work.

if we run the same page from anywhere else, then it works.

Any ideas?

回答1:

This error code is ERROR_INTERNET_CONNECTION_ABORTED. The most common reasons are a firewall or anti-virus interfering with the connection, a proxy borking the connection data. I can also be caused by a name resolution issue -- for example, if the host name resolves to 127.0.0.1 locally and the web server is bound to the public IP address only.



回答2:

Another possibility; the server at the far end may be filtering (and dropping) requests based on browser agent strings, to prevent programmatic scraping.

What happens when you just request that URL in a regular browser?



回答3:

When I got this error, the Event Logs indicated that w3wp.exe (the IIS App Pool) had crashed.

With Visual Studio, I opened the memory dump file that Event Viewer mentioned and the "Exception Information" had the message "The thread used up its stack."

It turned out that the code had a StackOverflowException that was crashing the app pool.



回答4:

Some servers need a content-length header set for an HTTP POST to function properly. In our case (using serverXMLHttp) this was needed:

    xmlhttp.Open "POST", URL , false
    xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    xmlhttp.setRequestHeader "Content-Length", Len(postdata)