明天发现一个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 HttpSet Http=Server.CreateObject("MSXML2.XMLHTTP.4.0")With Http.open "GET",HttpUrl,False.SendEnd WithIf Http.Readystate<>4 thenSet Http=Nothing......Exit functionEnd ifEnd Function

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

Function functionName(pararm ...)Dim HttpSet Http=Server.CreateObject("MSXML2.XMLHTTP.4.0")With Http.open "GET",HttpUrl,False.SendEnd WithOn Error Resume NextIf Http.Status<>200 thenSet Http=Nothing......Exit functionEnd ifEnd 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或罗唆重装系统(做这个之前你能够试着重新启动一下零碎看看,或者可能大略好像侥幸的话又能够应用了