,,解决采集时出现msxml3.dll 错误的方法
收集时出现:
msxml3.dll中有错误' 800c0005 '
系统找不到指定的资源。
/admin/item/admin _ itemfunction.asp,第166行
我查了一下资料:
在使用xmlhttp组件编写程序时,您会遇到' msxml3.dll错误' 800c0005。系统找不到指定的资源。这种错误,对于这种错误产生的原因,网上有很多解释。一般来说是防火墙或者UDP站权限造成的,也给出了相应的解决方法。有时候其他事情可能不是。事实上,主要原因“系统没有找到指定的资源”是在错误的描述中陈述的。这种错误是调用xmlhttp组件的Open方法,然后使用Send方法造成的。当open方法的url参数无法访问时,将导致800005错误。而一旦出现这种错误,就会导致应用终止,无法继续运行。大多数程序是这样写的:函数函数名(pararm.)dim http set http=server . createobject(' MSXML 2 . xmlhttp . 4.0 ')with http . open ' get ',httpurl,True。用if http发送结束。Readystate 4然后设置http=nothing.exit function endif end function大多数程序使用xmlhttp的readystate属性来判断从服务器返回的状态。其实这个可能不太合适。在很多情况下,通过ReadyState属性进行判断并不能真正检测出程序流中的错误。当遇到错误时,程序仍然会被终止。实际上,通过修改上述代码,可以完全跳过程序执行过程中遇到的错误,保持程序运行。修改后的代码如下:函数函数名(pararm.)dim http set http=server . createobject(' MSXML 2 . xmlhttp . 4.0 ')with http . open ' get ',httpurl,True。如果http,使用onerrorresumenext发送end。Status200然后设置http=nothing.当exit function endif end function send方法生成错误时,ReadyState的值可以是4,但status的返回值一定不能是200。呵呵,我已经多次跟踪ReadyState和Status的值得到前面的结果。可能有错,但我还没发现。希望以上方案解决方案能帮到你!如果你有更好的解决方法,请告诉我。我用MSXML2。以XMLHTTP.4.0为例来说明该程序,它也适用于其他版本的XMLHTTP组件。要检查哪些版本的XMLHTTP组件已安装在您的系统中,请到HKEY _类_根在注册表中。
根据以上信息,我只做了以下修改,让数据可以正常采集,不需要安装组件,重启,关闭防火墙等操作:
/admin/item/admin _ itemfunction.asp,第166行附近:
Http。Send() IfHttp。Readystate4then然后
代替
OnErrorResumeNext Http。Send() IfHttp。状态200然后
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。