在 Windows 7 上的经典 ASP 中执行 ServerXMLHTTP.send 时出现 MSXML3.dll 80072efd 和 800c0005 错误 [英] MSXML3.dll 80072efd and 800c0005 errors executing ServerXMLHTTP.send in classic ASP on Windows 7

查看:16
本文介绍了在 Windows 7 上的经典 ASP 中执行 ServerXMLHTTP.send 时出现 MSXML3.dll 80072efd 和 800c0005 错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个经典的 ASP 页面,我试图在 Windows 7 上的 IIS 上进行调试.该页面在另一台运行 Windows Server 2003 的机器上运行良好,该机器在不同的网络上运行.此外,在 Windows 7 机器上,我可以在浏览器中成功打开相关 URL.

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.

执行 ServerXMLHTTP.send() 时页面失败,错误:

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

我四处搜索,最有用的建议是使用 NetSh 为 winHTTP 设置代理.有问题的机器位于使用代理服务器的网络上.但是,即使在设置代理并重新启动后,我仍然会遇到同样的错误.

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.

变化

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

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

产生一个稍微不同的错误:

yields a slightly different error:

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

我还尝试安装 MSXML4 SP3 并使用以下方法显式创建 v4 对象:

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

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

除了消息中的 msxml4.dll 之外,我仍然收到相同的错误.

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

最后我尝试关闭我的 Forefront TMG 代理客户端,告诉我的浏览器不要使用代理,并使用 netsh 为 winHTTP 重置代理.即使浏览器仍然可以访问互联网,仍然会出现同样的错误.

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.

推荐答案

解决了我的情况,不过还有很多其他原因可能会导致此错误.对我来说简短的回答是:检查 Classic .Net AppPool 运行的用户,并确保您的网络允许他们访问互联网.

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.

我下载了 Microsoft 网络监视器并查看了故障期间的流量.唯一可能相关的流量都流向了我们的代理服务器,并且包括一次失败的身份验证尝试.

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.

然后我检查了 IIS 中的应用程序池,果然 Classic .Net AppPool 设置为使用代理无法识别的本地计算机帐户.将要使用的帐户更改为域帐户修复了该错误.

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.

这篇关于在 Windows 7 上的经典 ASP 中执行 ServerXMLHTTP.send 时出现 MSXML3.dll 80072efd 和 800c0005 错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆