コレクション中に表示されます:
msxml3.dllエラー '800c0005'
指定されたリソースはシステムには見つかりませんでした。
/admin/item/admin_itemfunction.asp、行166
情報を確認しました:
XMLHTTPコンポーネントを使用してプログラムを作成すると、「MSXML3.DLLエラー '800C0005」に遭遇しました。システムでは、指定されたリソースが見つかりませんでした。」インターネット上のこのエラーの原因については、多くの説明があります。一般的に言えば、それはファイアウォールまたはUDPステーションポート許可によって引き起こされ、対応するソリューションも言及されています。他の人は時々そうではないかもしれません。実際、間違った説明には、「システムが指定されたリソースが見つからなかった」主な理由が記載されています。このエラーは、XMLHTTPコンポーネントのオープンメソッドが呼び出され、SENDメソッドが使用されたときに発生します。 OpenメソッドのURLパラメーターがアクセスできない場合、8000005のエラーが発生します。また、このエラーが発生すると、アプリケーションが終了し、操作が継続できなくなります。ほとんどのプログラムは次のように書かれています:
functionFunctionName(Pararm ...)
dimhttp
sethttp = server.createObject( "msxml2.xmlhttp.4.0")
withhttp
.open "get"、httpurl、false
。送信
終わりに
ifhttp.ReadyState <> 4then
sethttp =何もない
......
exitFunction
endif
エンド機能
ほとんどのプログラムは、xmlhttpのReadyState属性を使用して、サーバーからのリターンステータスを決定します。実際、これは適切ではないかもしれません。多くの場合、ReadyState属性を裁判官に使用することは、プログラムフローのエラーを真に検出することはできません。エラーが発生した場合、プログラムは引き続き終了します。実際、上記のコードを変更すると、プログラムの実行中に遭遇したエラーを完全にスキップして、プログラムを実行し続けることができます。次のようにコードを変更します。
functionFunctionName(Pararm ...)
dimhttp
sethttp = server.createObject( "msxml2.xmlhttp.4.0")
withhttp
.open "get"、httpurl、false
。送信
終わりに
onerrorresumenext
ifhttp.status <> 200then
sethttp =何もない
......
exitFunction
endif
エンド機能
送信メソッドがエラーを生成する場合、ReadyState値は4になる可能性がありますが、ステータスの返品値は200であってはなりません。Haha、私は以前の結果を取得するために何度もReadyStateとステータスに従いました。エラーがあるかもしれませんが、まだ気づいていません。
上記のプログラムソリューションが役立つことを願っています!!友達のためのより良い解決策がある場合は、教えてください。
私は、MSXML2.xmlhttp.4.0を例として使用するプログラムであり、XMLHTTPコンポーネントの他のバージョンにも適しています。システムにxmlhttpコンポーネントのどのバージョンがインストールされているかを確認するには、レジストリのhkey_classes_rootにアクセスしてそれらを見つけることができます。
上記の情報に基づいて、コンポーネントのインストール、再起動、ファイアウォールの閉鎖など、操作なしに正常に収集するために次の変更を行いました。
/admin/item/admin_itemfunction.asp、166行近く:
http.send()
ifhttp.ReadyState <> 4then