IIS5のHTTP 500内部サーバーエラーはよく遭遇するエラーですが、どうすれば解決できますか?今日はそれを完全に解決する方法を説明します!
IIS5 の HTTP 500 内部サーバー エラーは、よく発生するエラーの 1 つであり、その主なエラーの兆候は、ASP プログラムが参照できないが、HTM 静的 Web ページは影響を受けないことです。また、エラーが発生すると、システム イベント ログとセキュリティ イベント ログに対応するレコードが記録されます。
詳細は以下のとおりです。
(1) IEでのパフォーマンス
以前は正常に機能していた ASP ページを参照すると、次のエラーが発生します。
Webページが表示できない
アクセスしようとしているページに問題があるため、表示できません。
次のことを試してください。
http://127.0.0.1 ホームページを開いて、必要な情報へのリンクを探します。
更新ボタンをクリックするか、後でもう一度試してください。
HTTP 500 - 内部サーバー エラー
インターネット情報サービス
技術情報(サポート担当者)
詳細:
マイクロソフトのサポート
または:
サーバーアプリケーションエラー
リクエストの処理中にアプリケーションのロード中にサーバーでエラーが発生しました。詳細については、イベント ログを参照してください。サポートが必要な場合は、サーバー管理者に問い合わせてください。
(2) セキュリティログ記録(2件)
イベントの種類: 監査の失敗
イベントソース: セキュリティ
イベントタイプ: ログイン/ログアウト
イベントID: 529
日付: 2001-9-9
イベント: 11:17:07
ユーザー: NT AUTHORITYSYSTEM
コンピュータ: マイサーバー
説明する:
ログインに失敗しました:
理由: 不明なユーザー名または間違ったパスワード
ユーザー名: IWAM_MYSERVER
ドメイン: MYDOM
ログインタイプ: 4
ログインプロセス: Advapi
認証パッケージ: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
ワークステーション名: MYSERVER
イベントの種類: 監査の失敗
イベントソース: セキュリティ
イベントの種類: アカウントのログイン
イベントID: 681
日付: 2001-9-9
イベント: 11:17:07
ユーザー: NT AUTHORITYSYSTEM
コンピュータ: マイサーバー
説明する:
アカウントにログインします: IWAM_MYSERVER
ログインユーザー: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
ワークステーションから: MYSERVER
失敗しました。エラーコードは: 3221225578
(3) システムログの記録(2件)
イベントの種類: エラー
イベントソース: DCOM
イベントタイプ: なし
イベントID: 10004
日付: 2001-9-9
イベント: 11:20:26
ユーザー: 該当なし
コンピュータ: マイサーバー
説明する:
DCOM で「パスワードを更新できません。新しいパスワードに指定された値には、パスワードで許可されていない値が含まれています。」というエラーが発生し、ログインして .IWAM_MYSERVER 上のサーバーを実行できませんでした。
{3D14228D-FBE1-11D0-995D-00C04FD919C1}
イベントの種類: 警告
イベントソース: W3SVC
イベントタイプ: なし
イベントID: 36
日付: 2001-9-9
イベント: 11:20:26
ユーザー: 該当なし
コンピュータ: マイサーバー
説明する:
サーバーはアプリケーション '/LM/W3SVC/4/Root' のステージングに失敗しました。エラーは、「RunAs は <ドメイン名><ユーザー名> または単に <ユーザー名> の形式である必要があります」です。
このメッセージの詳細については、Microsoft オンライン サポート サイト http://www.microsoft.com/contentredirect.asp にアクセスしてください。
[カットページ]
上記のエラー パフォーマンスを総合的に分析すると、HTTP 500 内部エラーは主に IWAM アカウント (私のコンピュータでは IWAM_MYSERVER アカウント) のパスワードが間違っていることが原因であることがわかります。
HTTP500 内部エラーの原因を詳しく分析する前に、IWAM アカウントについて簡単に説明します。 IWAM アカウントは、IIS5 のインストール時にシステムによって自動的に作成される組み込みアカウントで、主にアプリケーションのインターネット インフォメーション サービスを開始するために使用されます。プロセスの外で。 IWAM アカウントの名前は、各コンピュータの NETBIOS 名によって異なります。一般的な形式は IWAM_MACHINE で、接頭辞「IWAM」、接続行「_」、およびコンピュータの NETBIOS 名で構成されます。私のコンピュータの NETBIOS 名は MYSERVER なので、私のコンピュータの IWAM アカウントの名前は IWAM_MYSERVER になります。これは、IIS 匿名アカウント ISUR_MACHINE の命名方法と非常によく似ています。
IWAM アカウントが確立されると、Active Directory、IIS メタベース データベース、COM+ アプリケーションによって共同使用され、アカウントのパスワードは 3 者によってそれぞれ保存され、オペレーティング システムはこれら 3 者によって保存された IWAM パスワードの同期を担当します。パーティー。常識的に考えれば、オペレーティング システムが作業を担当するため、エラーを心配する必要はありません。しかし、バグまたはその他の理由で、システムによる IWAM アカウントのパスワード同期作業が失敗し、問題が発生することがあります。サードパーティの IWAM アカウントで使用されるパスワードが不一致になるようにします。 IIS または COM+ アプリケーションが間違った IWAM パスワードを使用してシステムにログインし、IIS アウトオブプロセス プールされたアプリケーションを起動すると、システムはパスワードが間違っているため要求を拒否し、IIS アウトオブプロセス プールされたアプリケーションがID10004 エラー イベントに「サーバー {3D14228D-FBE1-11D0-995D-00C04FD919C1} を実行できません」と表示されます (ここで、{3D14228D-FBE1-11D0-995D-00C04FD919C1} は IIS アウトプロセスのキーです)プールされたアプリケーション) を IIS5 アプリケーションに転送できず、HTTP 500 内部エラーが発生します。
HTTP 500 内部エラーの原因がわかれば、解決策は比較的簡単です。それは、Active Directory、IIS メタベース データベース、および COM+ アプリケーションの IWAM アカウントのパスワードを手動で同期することです。
具体的な操作は 3 つのステップに分かれており、管理者としてコンピューターにログインして十分な操作権限を与える必要があります (IWAM アカウントは例として IWAM_MYSERVER です)。
(1) Active DirectoryのIWAM_MYSERVERアカウントのパスワードを変更する
IWAM アカウントのパスワードはシステムによって制御されており、ランダムに生成されるため、パスワード同期の次の 2 つの手順を完了するには、IWAM アカウントのパスワードを適切な値に設定する必要があります。知る。
1. 「スタート」→「プログラム」→「管理ツール」→「Active Directory ユーザーとコンピュータ」を選択し、「Active Directory ユーザーとコンピュータ」スナップインを起動します。
2.「ユーザー」をクリックし、右側の「IWAM_MYSERVER」を選択し、右クリックして「パスワードのリセット(T)...」を選択し、表示されるパスワードのリセットボックスでIWAM_MYSERVERの新しいパスワードを設定します。 「Aboutnt2001」(引用符なし) に変更します。OK、パスワードが正常に変更されるまで待ちます。
(2) IIS メタベースの IWAM_MYSERVER アカウントのパスワードを同期する
おそらく、この変更は機密性が高く重要であるため、Microsoft は IIS メタベースの IWAM_MYSERVER アカウントのパスワードを変更するための明示的なユーザー インターフェイスを提供していません。このスクリプトは C: にある管理スクリプト adsutil.vbs のみを提供しています。 inetpub adminscripts サブディレクトリ内 (IIS5 のインストール時の設定の違いにより、場所が変わる場合があります)。
adsutil.vbs スクリプトは強力で、多くのパラメータがあり、使用が複雑です。ここでは、このスクリプトを使用して IWAM_MYSERVER アカウントのパスワードを変更する方法のみを示します。
adsutil w3svc/WAMUserPass パスワードの設定
「Password」パラメータは、設定する IWAM アカウントの新しいパスワードです。したがって、IIS メタベースの IWAM_MYSERVER アカウントのパスワードを「Aboutnt2001」に変更するコマンドは次のとおりです。
c:InetpubAdminScripts>adsutil SET w3svc/WAMUserPass "Aboutnt2001"
変更が成功すると、システムは次のようなプロンプトを表示します。
WAMUserPass: (文字列) "Aboutnt2001"
(3) COM+ アプリケーションの同期に使用される IWAM_MYSERVER のパスワード
COM+ アプリケーションで使用される IWAM_MYSERVER のパスワードを同期するには、2 つの方法があります。1 つはコンポーネント サービス MMC スナップインを使用する方法、もう 1 つは IWAM アカウント同期スクリプト synciwam.vbs を使用する方法です。
1.コンポーネントサービスMMC管理ユニットを利用する
(1) コンポーネント サービス スナップインの起動: 「スタート」→「ファイル名を指定して実行」→「MMC」を選択し、管理コンソールを起動し、「スナップインの追加と削除」ダイアログ ボックスを開き、「コンポーネント サービス」を追加します。 「スナップイン。
(2) 「コンポーネント サービス」 -> 「コンピューター」 -> 「マイ コンピューター」 -> 「COM+ アプリケーション」 -> 「アウトオブプロセス プールされたアプリケーション」を見つけ、「アウトオブプロセス プールされたアプリケーション」を右クリックします。 >「プロパティ」。
(3) 「アウトプロセスプールアプリケーション」のプロパティダイアログボックスの「フラグ」タブに切り替えます。 「このアプリケーションは次のアカウントで実行します」では「このユーザー」が選択され、ユーザー名は「IWAM_MYSERVER」になります。これらはデフォルトなので変更する必要はありません。下の「パスワード」および「パスワードの確認」テキストボックスに正しいパスワード「Aboutnt2001」を入力し、確認して終了します。
(4) 「アプリケーションは複数の外部製品によって作成されました。これらの製品によってサポートされてもよろしいですか?」というメッセージが表示されたら、確認してください。
(5) IIS で他の Web の「アプリケーション保護」を「高 (独立)」に設定した場合、この Web で使用される COM+ アプリケーションの IWAM アカウントのパスワードも同期する必要があります。手順 (1) ~ (4) を繰り返して、対応する他のプロセス外アプリケーションの IWAM アカウントのパスワードを同期します。
2. IWAM アカウントを使用してスクリプト synciwam.vbs を同期します。
実際、Microsoft は IWAM アカウントのパスワード同期に問題があることを発見したため、IIS5 管理スクリプトに IWAM アカウントのパスワード同期用の別のスクリプト synciwam.vbs を作成しました。このスクリプトは C:inetpubadminscripts にあります。サブディレクトリ (IIS5 のインストール時の設定によって場所が変わる場合があります)。
synciwam.vbs スクリプトの使用法は比較的簡単です。
cscript synciwam.vbs [-v|-h]
「-v」パラメータはスクリプト実行のプロセス全体を詳細に表示することを意味し(推奨)、「-h」パラメータは簡単なヘルプ情報を表示するために使用されます。
COM+ アプリケーションで IWAM_MYSERVER アカウントのパスワードを同期する場合は、次のように「cscript synciwam.vbs -v」を実行するだけです。
cscript c:inetpubadminscriptssynciwam.vbs -v
Microsoft(R) Windows スクリプト ホスト バージョン 5.6
著作権 (C) Microsoft Corporation 1996-2000。無断転載を禁じます。
Wamユーザー名:IWAM_MYSERVER
WamUserPass:Aboutnt2001
IIS アプリケーションの定義:
名前、AppIsolated、パッケージ ID
w3svc、0、{3D14228C-FBE1-11d0-995D-00C04FD919C1}
ルート、2、
IISヘルプ、2、
IIS管理者、2、
IISSサンプル、2、
MSADC、2、
ルート、2、
IIS管理者、2、
IISヘルプ、2、
ルート、2、
ルート、2、
プロセス外アプリケーションの定義:
カウント: 1
{3D14228D-FBE1-11d0-995D-00C04FD919C1}
アプリケーションの更新:
名前: IIS アウトプロセス プールされたアプリケーション キー: {3D14228D-FBE1-11D0-995D-00C04FD919C1}
上記のスクリプトの実行から、synciwam.vbs スクリプトを使用する方が、コンポーネント サービスを使用するよりも包括的で高速であることがわかります。まず、IIS メタベース データベースから IWAM アカウント「IWAM_MYSERVER」を検索し、対応するパスワード「Aboutnt2001」を取得します。次に、定義されているすべての IIS アプリケーションとアウト プロセス アプリケーションを検索し、各アウト プロセス アプリケーションの IWAM アカウントを 1 つずつ同期します。 .パスワード。
synciwam.vbs スクリプトを使用する場合、注意すべき点は、synciwam.vbs を実行する前に、IIS メタベース データベースと Active Directory の IWAM パスワードが一致していることを確認する必要があることです。 synciwam.vbs スクリプトは、Active Directory からではなく IIS メタベース データベースから IWAM アカウントのパスワードを取得するため、IIS メタベースのパスワードが正しくない場合、synciwam.vbs によって取得されるパスワードも正しくなくなり、同期操作が正しく行われなくなります。 「アプリケーションの更新」を実行すると、システムは 80110414 エラー、つまり「アプリケーション {3D14228D-FBE1-11D0-995D-00C04FD919C1} が見つかりません」を報告します。
これまでのところ、Active Directory、IIS メタベース データベース、COM+ アプリケーションの IWAM アカウントのパスワードは正常に同期されており、ASP プログラムは再び実行できるようになりました。
[カットページ]上記のエラー パフォーマンスを総合的に分析すると、HTTP 500 内部エラーは主に IWAM アカウント (私のコンピュータでは IWAM_MYSERVER アカウント) のパスワードが間違っていることが原因であることがわかります。
HTTP500 内部エラーの原因を詳しく分析する前に、IWAM アカウントについて簡単に説明します。 IWAM アカウントは、IIS5 のインストール時にシステムによって自動的に作成される組み込みアカウントで、主にアプリケーションのインターネット インフォメーション サービスを開始するために使用されます。プロセスの外で。 IWAM アカウントの名前は、各コンピュータの NETBIOS 名によって異なります。一般的な形式は IWAM_MACHINE で、接頭辞「IWAM」、接続行「_」、およびコンピュータの NETBIOS 名で構成されます。私のコンピュータの NETBIOS 名は MYSERVER なので、私のコンピュータの IWAM アカウントの名前は IWAM_MYSERVER になります。これは、IIS 匿名アカウント ISUR_MACHINE の命名方法と非常によく似ています。
IWAM アカウントが確立されると、Active Directory、IIS メタベース データベース、COM+ アプリケーションによって共同使用され、アカウントのパスワードは 3 者によってそれぞれ保存され、オペレーティング システムはこれら 3 者によって保存された IWAM パスワードの同期を担当します。パーティー。常識的に考えれば、オペレーティング システムが作業を担当するため、エラーを心配する必要はありません。しかし、バグまたはその他の理由で、システムによる IWAM アカウントのパスワード同期作業が失敗し、問題が発生することがあります。サードパーティの IWAM アカウントで使用されるパスワードが不一致になるようにします。 IIS または COM+ アプリケーションが間違った IWAM パスワードを使用してシステムにログインし、IIS アウトオブプロセス プールされたアプリケーションを起動すると、システムはパスワードが間違っているため要求を拒否し、IIS アウトオブプロセス プールされたアプリケーションがID10004 エラー イベントに「サーバー {3D14228D-FBE1-11D0-995D-00C04FD919C1} を実行できません」と表示されます (ここで、{3D14228D-FBE1-11D0-995D-00C04FD919C1} は IIS アウトプロセスのキーです)プールされたアプリケーション) を IIS5 アプリケーションに転送できず、HTTP 500 内部エラーが発生します。
HTTP 500 内部エラーの原因がわかれば、解決策は比較的簡単です。それは、Active Directory、IIS メタベース データベース、および COM+ アプリケーションの IWAM アカウントのパスワードを手動で同期することです。
具体的な操作は 3 つのステップに分かれており、管理者としてコンピューターにログインして十分な操作権限を与える必要があります (IWAM アカウントは例として IWAM_MYSERVER です)。
(1) Active DirectoryのIWAM_MYSERVERアカウントのパスワードを変更する
IWAM アカウントのパスワードはシステムによって制御されており、ランダムに生成されるため、パスワード同期の次の 2 つの手順を完了するには、IWAM アカウントのパスワードを適切な値に設定する必要があります。知る。
1. 「スタート」→「プログラム」→「管理ツール」→「Active Directory ユーザーとコンピュータ」を選択し、「Active Directory ユーザーとコンピュータ」スナップインを起動します。
2.「ユーザー」をクリックし、右側の「IWAM_MYSERVER」を選択し、右クリックして「パスワードのリセット(T)...」を選択し、表示されるパスワードのリセットボックスでIWAM_MYSERVERの新しいパスワードを設定します。 「Aboutnt2001」(引用符なし) に変更します。OK、パスワードが正常に変更されるまで待ちます。
(2) IIS メタベースの IWAM_MYSERVER アカウントのパスワードを同期する
おそらく、この変更は機密性が高く重要であるため、Microsoft は IIS メタベースの IWAM_MYSERVER アカウントのパスワードを変更するための明示的なユーザー インターフェイスを提供していません。このスクリプトは C: にある管理スクリプト adsutil.vbs のみを提供しています。 inetpub adminscripts サブディレクトリ内 (IIS5 のインストール時の設定の違いにより、場所が変わる場合があります)。
adsutil.vbs スクリプトは強力で、多くのパラメータがあり、使用が複雑です。ここでは、このスクリプトを使用して IWAM_MYSERVER アカウントのパスワードを変更する方法のみを示します。
adsutil w3svc/WAMUserPass パスワードの設定
「Password」パラメータは、設定する IWAM アカウントの新しいパスワードです。したがって、IIS メタベースの IWAM_MYSERVER アカウントのパスワードを「Aboutnt2001」に変更するコマンドは次のとおりです。
c:InetpubAdminScripts>adsutil SET w3svc/WAMUserPass "Aboutnt2001"
変更が成功すると、システムは次のようなプロンプトを表示します。
WAMUserPass: (文字列) "Aboutnt2001"
(3) COM+ アプリケーションの同期に使用される IWAM_MYSERVER のパスワード
COM+ アプリケーションで使用される IWAM_MYSERVER のパスワードを同期するには、2 つの方法があります。1 つはコンポーネント サービス MMC スナップインを使用する方法、もう 1 つは IWAM アカウント同期スクリプト synciwam.vbs を使用する方法です。
1.コンポーネントサービスMMC管理ユニットを利用する
(1) コンポーネント サービス スナップインの起動: 「スタート」→「ファイル名を指定して実行」→「MMC」を選択し、管理コンソールを起動し、「スナップインの追加と削除」ダイアログ ボックスを開き、「コンポーネント サービス」を追加します。 「スナップイン。
(2) 「コンポーネント サービス」 -> 「コンピューター」 -> 「マイ コンピューター」 -> 「COM+ アプリケーション」 -> 「アウトオブプロセス プールされたアプリケーション」を見つけ、「アウトオブプロセス プールされたアプリケーション」を右クリックします。 >「プロパティ」。
(3) 「アウトプロセスプールアプリケーション」のプロパティダイアログボックスの「フラグ」タブに切り替えます。 「このアプリケーションは次のアカウントで実行します」では「このユーザー」が選択され、ユーザー名は「IWAM_MYSERVER」になります。これらはデフォルトなので変更する必要はありません。下の「パスワード」および「パスワードの確認」テキストボックスに正しいパスワード「Aboutnt2001」を入力し、確認して終了します。
(4) 「アプリケーションは複数の外部製品によって作成されました。これらの製品によってサポートされてもよろしいですか?」というメッセージが表示されたら、確認してください。
(5) IIS で他の Web の「アプリケーション保護」を「高 (独立)」に設定した場合、この Web で使用される COM+ アプリケーションの IWAM アカウントのパスワードも同期する必要があります。手順 (1) ~ (4) を繰り返して、対応する他のプロセス外アプリケーションの IWAM アカウントのパスワードを同期します。
2. IWAM アカウントを使用してスクリプト synciwam.vbs を同期します。
実際、Microsoft は IWAM アカウントのパスワード同期に問題があることを発見し、IIS5 管理スクリプトに IWAM アカウントのパスワード同期用の別のスクリプト synciwam.vbs を作成しました。このスクリプトは C:inetpubadminscripts にあります。サブディレクトリ (IIS5 のインストール時の設定によって場所が変わる場合があります)。
synciwam.vbs スクリプトの使用法は比較的簡単です。
cscript synciwam.vbs [-v|-h]
「-v」パラメータはスクリプト実行のプロセス全体を詳細に表示することを意味し(推奨)、「-h」パラメータは簡単なヘルプ情報を表示するために使用されます。
COM+ アプリケーションで IWAM_MYSERVER アカウントのパスワードを同期する場合は、次のように「cscript synciwam.vbs -v」を実行するだけです。
cscript c:inetpubadminscriptssynciwam.vbs -v
Microsoft(R) Windows スクリプト ホスト バージョン 5.6
著作権 (C) Microsoft Corporation 1996-2000。無断転載を禁じます。
Wamユーザー名:IWAM_MYSERVER
WamUserPass:Aboutnt2001
IIS アプリケーションの定義:
名前、AppIsolated、パッケージ ID
w3svc、0、{3D14228C-FBE1-11d0-995D-00C04FD919C1}
ルート、2、
IISヘルプ、2、
IIS管理者、2、
IISSサンプル、2、
MSADC、2、
ルート、2、
IIS管理者、2、
IISヘルプ、2、
ルート、2、
ルート、2、
プロセス外アプリケーションの定義:
カウント: 1
{3D14228D-FBE1-11d0-995D-00C04FD919C1}
アプリケーションの更新:
名前: IIS アウトプロセス プールされたアプリケーション キー: {3D14228D-FBE1-11D0-995D-00C04FD919C1}
上記のスクリプトの実行から、synciwam.vbs スクリプトを使用する方が、コンポーネント サービスを使用するよりも包括的で高速であることがわかります。まず、IIS メタベース データベースから IWAM アカウント「IWAM_MYSERVER」を検索し、対応するパスワード「Aboutnt2001」を取得します。次に、定義されているすべての IIS アプリケーションとアウト プロセス アプリケーションを検索し、各アウト プロセス アプリケーションの IWAM アカウントを 1 つずつ同期します。 .パスワード。
synciwam.vbs スクリプトを使用する場合、注意すべき点は、synciwam.vbs を実行する前に、IIS メタベース データベースと Active Directory の IWAM パスワードが一致していることを確認する必要があることです。 synciwam.vbs スクリプトは、Active Directory からではなく IIS メタベース データベースから IWAM アカウントのパスワードを取得するため、IIS メタベースのパスワードが正しくない場合、synciwam.vbs によって取得されるパスワードも正しくなくなり、同期操作が正しく行われなくなります。 「アプリケーションの更新」を実行すると、システムは 80110414 エラー、つまり「アプリケーション {3D14228D-FBE1-11D0-995D-00C04FD919C1} が見つかりません」を報告します。
これまでのところ、Active Directory、IIS メタベース データベース、COM+ アプリケーションの IWAM アカウントのパスワードは正常に同期されており、ASP プログラムは再び実行できるようになりました。