乐趣区

关于asp:msxml3dll-错误-800c0019-系统错误2146697191解决方法

明天发现一个 asp 后盾应用了 XMLHTTP 组件的页面无奈无奈生成动态页面了,运行时提醒 msxml3.dll 谬误 800c0019 零碎谬误:-2146697191,通过搜寻如下办法解决了问题

一个 asp 后盾应用了 XMLHTTP 组件的页面无奈无奈生成动态页面了,运行时提醒 ”msxml3.dll 谬误 ‘800c0019′” 零碎谬误:-2146697191 请查找行 数。之前始终认为是服务器配置或数据库的起因,或者 IE 浏览器有问题,因为这是一个 XMLHTTP 对象组件,可能咱们前几天更新了零碎补丁降级了 xmlhttp 导致。当初终于找到了解决方案、摸清了起因。

解决办法:

1、找到谬误行,返回文件中实例化对象代码

set objXmlHttp = Server.CreateObject(“Microsoft.XMLHTTP”)

2、个别在 msxml2.6 以下版本应用

set objXmlHttp = Server.CreateObject(“MSXML2.XMLHTTP”)

3、msxml3.dll+ 版本反对应用如下代码

Set http=Server.CreateObject(“Msxml2.ServerXMLHTTP.3.0”)

最初,倡议应用第三步骤中的代码。

上面是其余网友的补充
msxml3.dll 谬误 ‘800c0008’, 零碎谬误: -2146697208 的解决方案

msxml3.dll 谬误 ‘800c0005’

The system cannot locate the resource specified.

/plugins.asp??А 165
这个状况个别呈现在采集信息或用 XMLHTTP 动态更新网页的时候会呈现这个问题,以前呈现相似的谬误我都是用

set objXmlHttp = Server.CreateObject(“Microsoft.XMLHTTP”) ‘ 个别在 msxml2.6 以下版本应用
‘ set objXmlHttp = Server.CreateObject(“MSXML2.XMLHTTP”) ‘ 受 msxml3.dll+ 反对

替换着应用,当初却怎么都报错。

搜寻了网上我所晓得所有的技术论坛和搜索引擎,引起这样的问题可能存在多种状况,上面总结一下:

(一)那就是最根本的了,你的服务器不反对 xmlhttp 或组件版本态低,须要下载相应的组件。这个个别服务器都不须要的,大多数状况下都反对 xmlhttp,所以这个状况较少。
(二)msxml3.dll 文件可能损坏或该文件应用权限不够 (权限这个状况可能性较小),如果是文件损坏的话,你能够到网上下载相应零碎环境的 msxml3.dll 文件替换下 (2003 零碎如同在 c:\windows\system32 下),须要敞开相应的服务例如 iis 等能力笼罩。
(三)防火强或杀毒软件禁用了相应的端口,具体该怎么设置要依据不同的软件而定,你能够试着敞开防火墙或杀毒软件后再测试确定是否是这个问题。
(四)从新注册下该组件试试看。开始 >> 运行: regsvr32 msxml3.dll
(五)DNS 解析谬误,查看你的网络设置或正确的域名解析拜访
(六)查看你的 IP 筛选的设置(这个不是太理解)
(七)对方资源生效,比方采集某条信息时,对方该条信息不存在导致程序终止谬误,也可能是这种状况。这种谬误都是呈现在调用了 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 下查找。

(八)进入服务器设置您的 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 或罗唆重装系统(做这个之前你能够试着重新启动一下零碎看看,或者可能大略好像侥幸的话又能够应用了

退出移动版