msxml3.dll 錯誤 ”800c0005”解決方案

來源:互聯網
上載者:User

在運用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 下尋找。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.