【ASP】MSXML2.XMLHTTP組件AJAX訪問第三方頁面時報錯:系統(tǒng)無法找到指定的資源,如何解決?
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
這個情況以前也遇到過,一般出現(xiàn)在采集信息或用XMLHTTP靜態(tài)更新網(wǎng)頁的時候會出現(xiàn)這個問題,以前出現(xiàn)類似的錯誤我都是用: set objXmlHttp = Server.CreateObject("Microsoft.XMLHTTP") '一般在msxml2.6以下版本使用 替換著使用,現(xiàn)在卻怎么都報錯。 搜索了網(wǎng)上我所知道所有的技術(shù)論壇和搜索引擎,引起這樣的問題可能存在多種情況,下面總結(jié)一下: 1、檢查訪問的第三方頁面是否真正存在,如果不存在也會報這個錯誤; 2、如果不是以上原因,那就是最基本的了,你的服務(wù)器不支持xmlhttp或組件版本態(tài)低,需要下載相應(yīng)的組件。這個一般服務(wù)器都不需要的,大多數(shù)情況下都支持xmlhttp,所以這個情況較少。 3、msxml3.dll文件可能損壞或該文件使用權(quán)限不夠(權(quán)限這個情況可能性較小),如果是文件損壞的話,你可以到網(wǎng)上下載相應(yīng)系統(tǒng)環(huán)境的msxml3.dll文件替換下(2003系統(tǒng)好像在c:\\windows\system32下),需要關(guān)閉相應(yīng)的服務(wù)例如iis等才能覆蓋。 4、防火強(qiáng)或殺毒軟件禁用了相應(yīng)的端口,具體該怎么設(shè)置要根據(jù)不同的軟件而定,你可以試著關(guān)閉防火墻或殺毒軟件后再測試確定是否是這個問題。 5、重新注冊下該組件試試看。開始>>運行: regsvr32 msxml3.dll 6、DNS解析錯誤,檢查你的網(wǎng)絡(luò)設(shè)置或正確的域名解析訪問 7、檢查你的IP篩選的設(shè)置(這個不是太了解) 8、對方資源失效,比如采集某條信息時,對方該條信息不存在導(dǎo)致程序終止錯誤,也可能是這種情況。這種錯誤都是出現(xiàn)在調(diào)用了 xmlhttp 組件的 Open方法,接著再用Send方法后造成的。當(dāng)open方法的的 url 參數(shù)無法訪問時,就會造成 8000005 錯誤。并且一旦產(chǎn)生這種錯誤,就會導(dǎo)致應(yīng)用程序終止,無法繼續(xù)操作。大多說的程序是這樣寫的: 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 大多數(shù)的程序都是運用xmlhttp的 Readystate 屬性判斷從服務(wù)器的返回狀態(tài)。其實這樣未必適合,很多時候用ReadyState 屬性判斷并不能真正檢測到程序流程中的錯誤。當(dāng)遇到錯誤的時候,仍然會致使程序終止。其實修改一下上面的代碼,完全可以實現(xiàn)跳過程序執(zhí)行過程中遇到的錯誤,使程序繼續(xù)運行。修改代碼如下: 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 方法產(chǎn)生錯誤的時候,ReadyState的值或許為4,但Status的返回值就一定不是200的。呵呵,我經(jīng)過多次跟蹤ReadyState和Status的值得到以前結(jié)果。可能會有差錯,目前我還沒有發(fā)現(xiàn)。 9、進(jìn)入服務(wù)器設(shè)置您的IE安全選項(把等級設(shè)中或低試試看),在受信任網(wǎng)站里加入您要獲取的域名即可。 10、以上方法我基本都看過之后也試過了,不過都沒解決。于是去微軟下載了MSXML 4.0 Service Pack 2 (Microsoft XML Core Services)和Hotfix for MSXML 4.0 Service Pack 2 - KB832414 - 簡體中文(KB832414_MSXML4.0_x86.exe)安裝后,問題終于解決了?。?! 如果你的情況,在我上面方法都解決不了,那就太背了,你繼續(xù)到網(wǎng)上找其它可能出現(xiàn)的情況吧,如果不想繼續(xù)找了就重裝你的iis或干脆重裝系統(tǒng),做這個之前你可以試著重新啟動一下系統(tǒng)看看,或許可能大概仿佛幸運的話又可以使用了。 該文章在 2024/5/28 9:12:54 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |