msxml3.dll 错误 '800c0005'具体解决办法详解

 

在进行 ASP开发中一些朋友尤其是经常使用ASP采集程序的朋友一定遇到过:
msxml3.dll 错误 '800c0005'
系统未找到指定的资源。

这样的错误。

网上很多帖子会说是防火墙或UDP站口权限造成的错误,建议打开防火墙等等解决,但是我发现以下这个方法还是很有它的独到之处的

采集时出现:

msxml3.dll 错误 '800c0005'

系统未找到指定的资源。

/Admin/Item/Admin_ItemFunction.asp,行166

我查了资料:

在运用xmlhttp组件编写程序中,会碰到 "msxml3.dll 错误 '800c0005' 系统未找到指定的资源。" 这种错误,网上对这种错误的产生原因有很多钟解释,大体说是因为防火墙或UDP站口权限造成了,也说了相应的解决办法。其它有时候也未必。其实错误的描述中就说出了主要的原因 "系统未找到指定的资源" 。这种错误都是出现在调用了 xmlhttp 组件的 Open方法,接着再用Send方法后造成的。当open方法的的 url 参数无法访问时,就会造成 8000005 错误。并且一旦产生这种错误,就会导致应用程序终止,无法继续操作。大多说的程序是这样写的:

Function functionName(pararm ...)
Dim Http
Set Http=Server.CreateObject("MSXML2.XMLHTTP.4.0")
With Http
.open "GET",HttpUrl,False
.Send
End With
If Http.Readystate<>4 then
Set Http=Nothing
......
Exit function
End if
End Function

大多数的程序都是运用xmlhttp的 Readystate 属性判断从服务器的返回状态。其实这样未必适合,很多时候用ReadyState 属性判断并不能真正检测到程序流程中的错误。当遇到错误的时候,仍然会致使程序终止。其实修改一下上面的代码,完全可以实现跳过程序执行过程中遇到的错误,使程序继续运行。修改代码如下:

Function functionName(pararm ...)
Dim Http
Set Http=Server.CreateObject("MSXML2.XMLHTTP.4.0")
With Http
.open "GET",HttpUrl,False
.Send
End With
On Error Resume Next
If Http.Status<>200 then
Set Http=Nothing
......
Exit function
End if
End Function

Send 方法产生错误的时候,ReadyState的值或许为4,但Status的返回值就一定不是200的。呵呵,我经过多次跟踪ReadyState和Status的值得到以前结果。可能会有差错,目前我还没有发现。

希望以上程序解决方案能够帮到你!!如果朋友你有更好的解决方法,请一定告诉我哟。

我是以MSXML2.XMLHTTP.4.0为例说明的程序,也适合其它版本的XMLHTTP组件。想检查的你系统中已经安装了哪些版本的XMLHTTP组件,请到注册表的 HKEY_CLASSES_ROOT 下查找。

根据以上资料,我只做了如下修改,便可以正常采集,无需进行什么安装组件、重起、关闭防火墙等操作:

/Admin/Item/Admin_ItemFunction.asp,行166 低温恒温槽www.shunma17.com附近:

Http.Send()
If Http.Readystate<>4 then

改为

On Error Resume Next
Http.Send()
If Http.Status<>200 then


回收进程池以后,无效

重启iis,无效

搜索到网上有以下的解决方案,尝试到第四步时候,问题解决。

(一)那就是最基本的了,你的服务器不支持xmlhttp或组件版本态低,需要下载相应的组件。这个一般服务器都不需要的,大多数情况下都支持xmlhttp,所以这个情况较少。

(二)msxml3.dll文件可能损坏或该文件使用权限不够(权限这个情况可能性较小),如果是文件损坏的话,你可以到网上下载相应系统环境的msxml3.dll文件替换下(2003系统好像在c:\\windows\system32下),需要关闭相应的服务例如iis等才能覆盖。

(三)防火强或杀毒软件禁用了相应的端口,具体该怎么设置要根据不同的软件而定,你可以试着关闭防火墙或杀毒软件后再测试确定是否是这个问题。

(四)重新注册下该组件试试看。开始>>运行: regsvr32 msxml3.dll

(五)dns解析错误,检查你的网络设置或正确的域名解析访问

(六)检查你的ip筛选的设置(这个不是太了解)

(七)对方资源失效

(八)进入服务器设置您的ie安全选项(把等级设中或低试试看),在受信任网站里加入您要获取的域名即可。

(九)以上方法我基本都看过之后也试过了,不过都没解决。于是去微软下载了msxml 4.0 service pack 2 (microsoft xml core services)和hotfix for msxml 4.0 service pack 2 - kb832414 - 简体中文(kb832414_msxml4.0_x86.exe)安装后,问题终于解决了!!!
 (十)如果你的情况,在我上面方法都解决不了,那就太背了,你继续到网上找其它可能出现的情况吧,如果不想继续找了就重装你的iis或干脆重装系统(做这个之前你可以试着重新启动一下系统看看,或许可能大概仿佛幸运的话又可以使用了

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
msxml3.dll是一种动态链接库文件,它是Microsoft XML Core Services的一部分,用于处理XML数据的解析和管理。当出现"msxml3.dll 安全频道支持错误"时,通常说明XML数据的安全性认证或加密过程发生了错误。 这种错误通常出现在使用网络通信协议(如HTTPS)传输XML数据时。安全频道支持是一种用于确保数据传输的机制,它使用加密和数字证书等技术来保护数据的完整性和安全性。当在与远程服务器进行通信的过程中,XML数据的安全频道支持检测到错误,就会导致出现这个错误提示。 要解决这个问题,可以尝试以下几种方法: 1. 更新或重新安装Microsoft XML Core Services:这个错误可能是由于msxml3.dll文件损坏或丢失所致。可以通过访问Microsoft官方网站下载最新的XML Core Services包,然后安装或更新该软件来解决问题。 2. 检查网络连接和安全设置:这个错误可能是由于网络连接问题或安全设置不正确所致。确保网络连接正常并且没有被防火墙或安全软件阻止。还可以尝试调整Internet Explorer或其他网络软件的安全级别,以确保能够正确执行安全频道支持。 3. 检查远程服务器证书:当使用HTTPS协议进行通信时,需要检查和验证远程服务器的数字证书。确保证书合法有效,并且可以正确地与远程服务器建立安全连接。 4. 联系软件开发者或技术支持:如果以上方法都无法解决问题,建议联系软件开发者或技术支持寻求帮助。他们可能需要详细的错误信息和日志来诊断和解决问题。 总之,"msxml3.dll 安全频道支持错误"通常与XML数据的安全性认证或加密过程中出现问题有关。通过更新或重新安装Microsoft XML Core Services、检查网络连接和安全设置、验证远程服务器证书等方法,可以尝试解决这个问题。如果问题仍然存在,建议联系软件开发方或技术支持获得进一步的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值