服務器發生msxml3.dll,錯誤800c0005錯誤的原因和解決方法
[重要通告]如您遇疑難雜癥,本站支持知識付費業務,掃右邊二維碼加博主微信,可節省您寶貴時間哦!
打開asp頁面出現msxml3.dll 錯誤 '800c0005'如下圖所示
產生msxml3.dll 錯誤 '800c0005'大致有以下幾種原因:
1、url不存在
2、防火墻問題
3、沒有啟用Web服務擴展的
4、msxml3.dll損壞了
以上幾個原因,第一點url不存在-----我的url肯定是存在的,而肯該程序我以前用過沒有問題,也沒有更改過程序,所以肯定不是這個原因。
說明:第二點至第四點就是服務器的問題了,可能服務器的配置更改。
問題2的解決辦法:關掉防火墻或在防火墻中將SYSTEM32目錄中的DLLHOST.EXE文件加為信任文件,允許進入和出去的訪問權限。
問題3的解決辦法:啟用 WebDev服務,把DNS client服務啟動
問題4的解決辦法:到其他機器上找同樣版本的文件覆蓋(要先停止iis)
另,在網上查到下面的解決方法,我試了但沒有成功。
在運用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 下查找。
.send這里出錯
從其他機器上復制這三個文件
msxml3.dll、msxml3a.dll和msxml3r.dll
到C:\Windows\System32目錄覆蓋同名文件
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!