1. ホーム
  2. Web プログラミング
  3. ASP プログラミング
  4. アプリケーションのヒント

msxml3.dll Error 800c0019 システムエラー:-2146697191 解決策

2022-01-18 11:02:44

ページのXMLHTTPコンポーネントを使用してaspバックエンドは、プロンプトを実行すると、静的なページを生成することはできません "msxml3.dllエラー '800c0019′" システムエラー:-2146697191行番号を探してください。以前は、私はいつもこれはXMLHTTPオブジェクトのコンポーネントであるため、サーバーの構成またはデータベース、またはIEのブラウザの問題だと思った、我々は数日前にシステムパッチを更新して引き起こされるxmlhttpをアップグレードしている可能性があります。今、私は最終的に解決策を発見し、理由を考え出した。

解決策

1は、エラー行を見つける、オブジェクトコードをインスタンス化するファイルに戻る

set objXmlHttp = Server.CreateObject("Microsoft.XMLHTTP")

2, 一般に msxml2.6 以下で使用されます。

set objXmlHttp = Server.CreateObject("MSXML2.XMLHTTP")

3. msxml3.dll+ 版は以下のコードでサポートします。

Set http=Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")

最後に、ステップ3のコードを使用することをお勧めします。

以下は、他のユーザーが追加したものです。

msxml3.dll エラー '800c0008',システムエラー: -2146697208 解決策

msxml3.dll エラー '800c0005'。

システムは指定されたリソースを見つけることができません。

/plugins.asp??А 165
/{br この問題は通常、XMLHTTPで静的に情報を収集したり、ページを更新するときに発生し、以前は同様のエラーを

CreateObject("Microsoft.XMLHTTP") '一般的に msxml2.6 以下で使用されます。
' set objXmlHttp = Server.CreateObject("MSXML2.XMLHTTP") ' msxml3.dll+ でサポートされます。

代わりに使っているが、今はとにかくエラーを報告している。

私がウェブ上で知っているすべての技術フォーラムや検索エンジンを検索した結果、このような問題を引き起こす可能性のあるシナリオは数多くあり、以下に要約されます。

(a) これは最も基本的なことですが、サーバーがxmlhttpをサポートしていないか、コンポーネントのバージョン状態が低いので、適切なコンポーネントをダウンロードする必要があります。これは一般的にサーバーが必要とするものではなく、ほとんどの場合xmlhttpはサポートされているので、このケースはあまりありません。
(b) msxml3.dll ファイルが破損しているか、ファイルに十分なパーミッションがない可能性があります(パーミッションは可能性が低い)。ファイルが破損している場合、オンラインで該当するシステム環境の msxml3.dll ファイルをダウンロードして置き換えることができます(2003システムは c:\windowssystem32 以下にあるようです)、上書きするためには iis など該当サービスを終了している必要があります。
(C)は、強力な耐火またはウイルス対策ソフトウェアに対応するポートを無効にするには、どのように別のソフトウェアに応じて、特定の設定には、ファイアウォールやウイルス対策ソフトウェアを閉じて、これは問題であるかどうかを判断するためにテストしてみることができます。
(D) 試しにコンポーネントを再登録してみる。スタート>>実行: regsvr32 msxml3.dll
(e) DNS解決エラー、ネットワーク設定を確認するか、ドメイン名解決アクセスを修正する。
(vi) IPスクリーニングの設定を確認する(これはあまり理解されていない)。
(vii) 相手方のリソースに障害が発生する。例えば、ある情報を収集する際に、相手方の情報が存在せず、結果としてプログラム終了エラーになる、といったケースも考えられます。このエラーは、xmlhttpコンポーネントのOpenメソッドに続いてSendメソッドを呼び出した場合に発生します。8000005エラーは、openメソッドのurlパラメータにアクセスできない場合に発生します。そして、このエラーが発生すると、アプリケーションは終了してしまい、続行できなくなります。ほとんどのプログラムは、このように書かれています。

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を参照してください。

(H) サーバーに行き、IEのセキュリティオプションを設定し(レベルを中か低に設定してみてください)、信頼できるWebサイトに取得したいドメイン名を追加してください。

(ix)基本的に上記の方法を読んでから全て試したのですが、うまくいきませんでした。そこで、マイクロソフトに行き、MSXML 4.0 Service Pack 2 (Microsoft XML Core Services) と Hotfix for MSXML 4.0 Service Pack 2 - KB832414 - Simplified Chinese (KB832414_MSXML4.0_x86.exe) をダウンロードしインストールをしました。やっと問題が解決しました!!!

(x)あなたの状況は、上記の私の方法で解決することはできません、それはあまりにも戻って、あなたがあなたのiisを再インストールするか、単にシステムを再インストールするために探し続けるしたくない場合は、インターネット上で他の可能な状況を探し続ける(これを行う前に、参照するシステムを再起動しようとすると、おそらく幸運再び使用できるかのように)。