8

I have a classic ASP page that I am trying to debug on IIS on Windows 7. The page works fine on another machine running Windows Server 2003 on a different network. Also, on the Windows 7 machine I can successfully open the URL in question in a browser.

The page fails when executing ServerXMLHTTP.send() with the error:

msxml3.dll error '80072efd'
A connection with the server could not be established 

The code in question looks like this (the last line is failing):

set xmlHTTP = server.CreateObject("MSXML2.ServerXMLHTTP")
xmlHTTP.open "get", "http://stackoverflow.com", False
xmlHTTP.send

I have searched around and the most helpful looking suggestion was to use NetSh to set a proxy for winHTTP. The machine with problems is on a network which does use a proxy server. However, even after setting the proxy and rebooting I still get the same error.

Changing

set xmlHTTP = server.CreateObject("MSXML2.ServerXMLHTTP")

to

set xmlHTTP = server.CreateObject("MSXML2.XMLHTTP")

yields a slightly different error:

msxml3.dll error '800c0005'
The system cannot locate the resource specified.

I've also tried installing MSXML4 SP3 and explicitly creating a v4 object using:

set xmlHTTP = server.CreateObject("MSXML2.ServerXMLHTTP.4.0")

I still get the same errors except with msxml4.dll in the message.

Finally I tried turning off my Forefront TMG proxy client, telling my browser not to use a proxy, and using netsh to reset the proxy for winHTTP. Still the same errors even though the browser can still access the internet.

From what I've found I reckon this must be an issue with connectivity from this particular machine over the particular network it is on. However, I have no idea what the problem is. Any suggestions gratefully received.

Dan
  • 7,446
  • 6
  • 32
  • 46

7 Answers7

5

Solved it for my case, there are plenty of other reasons you might get this error though. The short answer for me was: Check the user the Classic .Net AppPool is running as and make sure your network allows them internet access.

I downloaded Microsoft Network Monitor and looked at the traffic during a failure. The only traffic that might have been related was all going to our proxy server and consisted of a failed attempt to authenticate.

I then checked the app pools in IIS and sure enough the Classic .Net AppPool was set to use a local machine account that wasn't being recognised by the proxy. Changing the account to use to a domain account fixed the error.

Dan
  • 7,446
  • 6
  • 32
  • 46
2

This error can also occur when using HTTPS if the SSL session cannot be negotiated due to incompatible ciphers.

SSL Labs's SSL Test can help determine which are compatible.

I know the original question was about a non-SSL connection, but I'm putting this out there as this is the first hit on Google when searching for the error message.

drlarsen
  • 61
  • 2
  • 1
    @JB King, It's not a Link-Only answer. The problem is due to incompatible ciphers, as I explained. The link to a site that will test your ciphers for compatibility was provided as a courtesy, not as a solution. – drlarsen Nov 04 '15 at 21:30
0

I found out that when getting the 800C005 error in my script the connectivity to the soap server I was connecting to makes a difference.

Had to define multiple entries in my windows HOSTS table to run the script without the error.

Put in mysoapserverurl.com that gave an error, when adding www.mysoapserverurl.com that works, leaving only the URL with www. the script gives the error again. (always msxml3.dll error).

BrOlav
  • 1
0

@Dan: Did you try with the IP for stackoverflow.com?

set xmlHTTP = server.CreateObject("MSXML2.ServerXMLHTTP")
xmlHTTP.open "get", "http://64.34.119.12/", False
xmlHTTP.send

response.write xmlHTTP.responseText
stealthyninja
  • 10,343
  • 11
  • 51
  • 59
  • @Dan: Check if `w3wp.exe` is running under processes in Task Manager...if not, restart IIS and run both of the code samples (domain and IP) to see if either of them work. – stealthyninja Dec 06 '10 at 17:27
  • Thanks again, I've actually fixed the issue now, but for some reason I have to wait 4 hours before I can accept my own answer... – Dan Dec 06 '10 at 18:13
0

This worked for fixing my issue with same error number in vbs file using Microsoft.XmlHttp.

Try adding empty double quotes at end of http.send

http = CreateObject("Microsoft.XmlHttp")
http.open "GET", strURL, False
http.send ""

Worked for me. Good luck to you.

webzcom
  • 9
  • 1
  • 2
-1

The only reasonable answer I've found on google was this one. I hope it helps.

How do I read the contents of a remote web page? [link removed]

A common error you might receive:

>     msxml3.dll error '80072efd'  
>     A connection with the server could not be established

Make sure that the URL is actually reachable. You may have spelled the domain name wrong, or the site may actually be down. Test using a browser from that machine, or simply running a tracert / ping. Note that ping won't always return results, because many sites block all such traffic (mainly to help eliminate DOS attacks). However, ping should at least let you know the IP address, which means that the domain name was resolved correctly through DNS. Otherwise, it might be that your DNS server is preventing connection.

Chris Devereux
  • 5,453
  • 1
  • 26
  • 32
Ives.me
  • 2,359
  • 18
  • 24
  • Thanks for the answer, unfortunately I also found that page and I can view the URL in my browser :( I also found another page that indicated that MSXML4 gives a different error if it can't resolve the domain name, which I'm not seeing. – Dan Dec 05 '10 at 09:43
-2

It could happen if your URL is more than 255 characters in length. Some how XML is not allowing to post more than 255 characters