msxml3.dll 错误 '800c0005'解决
最近偶爾遇到這個錯誤,很是郁悶~升級msxml4都無效,網上搜一下,都是說改文件夾權限IUSR用戶為可寫,不頂用,解決不了問題,后來終于找到方法,解決問題,在此記錄下
在運用xmlhttp組件編寫程序中,會碰到"msxml3.dll錯誤'800c0005'系統未找到指定的資源。"這種錯誤,網上對這種錯誤的產生原因有很多鐘解釋,大體說是因為防火墻或UDP站口權限造成了,也說了相應的解決辦法。其它有時候也未必。其實錯誤的描述中就說出了主要的原因"系統未找到指定的資源"。這種錯誤都是出現在調用了xmlhttp組件的Open方法,接著再用Send方法后造成的。當open方法的的url參數無法訪問時,就會造成8000005錯誤。并且一旦產生這種錯誤,就會導致應用程序終止,無法繼續操作。大多說的程序是這樣寫的:
FunctionfunctionName(pararm)
DimHttp
SetHttp=Server.CreateObject("MSXML2.XMLHTTP.4.0")
WithHttp
.open"GET",HttpUrl,False
.Send
EndWith
IfHttp.Readystate<>4then
SetHttp=Nothing
Exitfunction
Endif
EndFunction
大多數的程序都是運用xmlhttp的Readystate屬性判斷從服務器的返回狀態。其實這樣未必適合,很多時候用ReadyState屬性判斷并不能真正檢測到程序流程中的錯誤。當遇到錯誤的時候,仍然會致使程序終止。其實修改一下上面的代碼,完全可以實現跳過程序執行過程中遇到的錯誤,使程序繼續運行。修改代碼如下:
FunctionfunctionName(pararm)
DimHttp
SetHttp=Server.CreateObject("MSXML2.XMLHTTP.4.0")
WithHttp
.open"GET",HttpUrl,False
.Send
EndWith
OnErrorResumeNext
IfHttp.Status<>200then
SetHttp=Nothing
Exitfunction
Endif
EndFunction
Send方法產生錯誤的時候,ReadyState的值或許為4,但Status的返回值就一定不是200的。呵呵,我經過多次跟蹤ReadyState和Status的值得到以前結果。可能會有差錯,目前我還沒有發現。
希望以上程序解決方案能夠幫到你!!如果朋友你有更好的解決方法,請一定告訴我喲。
我是以MSXML2.XMLHTTP.4.0為例說明的程序,也適合其它版本的XMLHTTP組件。想檢查的你系統中已經安裝了哪些版本的XMLHTTP組件,請到注冊表的HKEY_CLASSES_ROOT下查找。
呵呵~加了個Status<>200判斷解決了問題
總結
以上是生活随笔為你收集整理的msxml3.dll 错误 '800c0005'解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 免疫力低下吃什么好(吃什么可以提高免疫力
- 下一篇: 韬光养晦是什么意思(韬光养晦”到底是什么