IIS 上で動作する Web アプリケーションの応答が停止する場合やエラーになる場合にトラブルシューティングする方法

概要
Microsoft Internet Information Services (以下 IIS) 上で動作する Web アプリケーションで発生する一般的な問題として、IIS や "IIS 上で動作する Web アプリケーション" (以下 Web アプリケーション) の応答が停止または遅延する現象、プロセスが異常終了する現象、エラーが発生する現象などがあります。この資料では、このような問題の原因を調査するために必要な情報を取得する方法を説明します。
はじめに
IIS を Web サーバーとして使用して、Web アプリケーションを実行している場合、検証環境では確認できなかった問題が運用環境で発生することがあります。

このような予期せぬ問題が運用環境で発生した場合、原因を特定するためには、システムが復旧した後ではなく、現象発生時にデバッグを実施する必要があります。復旧した後では、問題発生時のプロセスが終了してしまっており、デバッグを実施することができません。しかし、一般的に、運用環境ではこのような問題を再現するための手順が確立されておらず、運用中のデバッグが難しいことが多くあります。

そのため、このような状況では、問題復旧後にデバッグが行えるように、問題が発生した時点でのプロセスのデバッグ情報を含むダンプ ファイルを取得することが有効になります。

ダンプ ファイルは、問題が発生した時点のプロセス メモリのスナップショットです。ダンプ ファイルをデバッガで解析すると、ダンプ ファイル作成時にプロセス内でどのような処理が行われていたか、また、どのような問題が発生していたかを確認することができます。

マイクロソフト技術サポートでは、IIS や Web アプリケーションにおける、応答の停止や遅延、プロセスの異常終了やエラーの発生などの問題について、発生原因を調査するために、ダンプ ファイルのご提供を依頼することがあります。また、ダンプ ファイルがない場合には、お客様の環境で発生しているこのような問題に関する調査が行えない場合があります。

: Web サーバーとして使用しているオペレーティング システム全体のパフォーマンスの低下、オペレーティング システムの処理の停止やネットワークの問題については、ダンプ ファイルから問題の発生原因を特定することはできません。同様に Web アプリケーションから DCOM コンポーネントやデータ ベースなどの外部プロセス、外部環境へアクセスし、それらの処理に時間を要している場合も、ダンプ ファイルから原因を特定することはできません。このような問題の場合は、Web アプリケーションにトレース コードを組み込むなどの方法で処理に時間のかかっている箇所を特定する必要があります。
詳細
IIS や Web アプリケーションの応答が停止または遅延する現象、プロセスが異常終了する現象、エラーが発生する現象などは "ハングアップ" と "クラッシュ" に分類することができます。
  • ハングアップ : IIS や Web アプリケーションの応答が停止する、または正常時に比べて遅延する。
  • クラッシュ : IIS や Web アプリケーションでエラーが発生する、またはアプリケーションの実行プロセスが異常終了する。
ハングアップ

次のいずれか、またはいくつかの傾向が見られる場合、発生している問題がハングアップであると判断することができます。
  • ブラウザに要求したページが何も表示されない。
  • 正常時に比べて要求したページの表示に時間がかかる。
  • 正常時に比べて要求したページの表示に時間がかかり、かつ、ブラウザにタイム アウトのエラーが表示されたり、IIS アクセス ログに ASP_0113 エラーが記録される。
  • 正常時に比べて要求したページの表示に時間がかかり、かつ、HTTPERR ログに Connection_Dropped が記録される。
  • パフォーマンス モニタの Web Service オブジェクトの Current Connections カウンタや Active Server Pages オブジェクトの Request Queued カウンタが正常時に比べて高い値のまま推移し、ASP アプリケーションに対する HTTP 要求の応答が返らない。
  • IIS Admin Service や World Wide Web Publishing Service の停止に時間がかかり、サービスが正常に停止できない。
  • Web サーバーのシステム イベント ログに以下のエラーが記録される。

    イベントの種類 : 警告
    イベント ソース : W3SVC
    イベント カテゴリ : なし
    イベント ID : 1010
    説明 :
    アプリケーション プール 'DefaultAppPool' を提供しているプロセスが ping の応答に失敗しました。プロセス ID は 'XXX' です。

  • アプリケーション プールのリサイクルが終了せず、Web サーバーのシステム イベント ログに以下のエラーが記録される。

    イベントの種類 : 警告
    イベント ソース : W3SVC
    イベント カテゴリ : なし
    イベント ID : 1013
    説明 :
    アプリケーション プール 'DefaultAppPool' を提供しているプロセスはシャットダウンの最中に時間制限を超えました。プロセス id は 'XXX' でした。

クラッシュ

次のいずれか、またはいくつかの傾向が見られる場合、発生している問題がクラッシュであると判断することができます。
  • ブラウザに HTTP 500 内部サーバー エラーが表示される。
  • IIS アクセス ログの sc-status に 500 が記録される。
  • IIS アクセス ログに ASP_0115 エラーが記録される。
  • Web サーバーのシステム イベント ログに以下のエラーが記録される。

    イベントの種類 : 警告
    イベント ソース : W3SVC
    イベント カテゴリ : なし
    イベント ID : 1011
    説明 :
    アプリケーション プール 'DefaultAppPool' を提供しているプロセスは、World Wide Web 発行サービスで致命的な通信エラーを検出しました。プロセス id は 'XXX' でした。データ フィールドにはエラー番号が含まれています。

    イベントの種類 : エラー
    イベント ソース : W3SVC
    イベント カテゴリ : なし
    イベント ID : 1039
    説明 :
    アプリケーション プール 'DefaultAppPool' を提供しているプロセスがエラーを報告しました。プロセス ID は 'XXX' でした。データ フィールドにはエラー番号が含まれています。

    イベントの種類 : エラー
    イベント ソース : W3SVC
    イベント カテゴリ : なし
    イベント ID : 1017
    説明 :
    ワーカー プロセスの失敗により World Wide Web 発行サービスが終了しました。

    イベントの種類 : エラー
    イベント ソース : W3SVC
    イベント カテゴリ : なし
    イベント ID : 1005
    説明 :
    エラーにより、World Wide Web 発行サービスは終了します。データ フィールドにはエラー番号が含まれています。

  • Web サーバーのアプリケーション イベント ログに以下のエラーが記録される。

    イベントの種類 : エラー
    イベント ソース : Active Server Pages
    イベント カテゴリ : なし
    イベント ID : 5
    説明 :
    エラー: スクリプト エンジンの例外が発生しました. ScriptEngine が例外 'E06D7363' ('IScriptDispatchEx::InvokeEx()' 内の 'CScriptingNamespace::InvokeEx()' で) の発生原因です。

ダンプ ファイルの取得方法

発生している問題 (ハングアップまたはクラッシュ)、Web サーバーとして使用しているオペレーティング システム、IIS の構成、問題が発生しているアプリケーションの種類によってダンプ ファイルの取得方法が異なります。これらの情報を元に適切なダンプ ファイルの取得方法を選択してください。
929119 IIS 6.0 上で動作する Web アプリケーションのダンプ ファイル取得方法
2668255 IIS 7.0 および IIS 7.5 上で動作する Web アプリケーションのダンプ ファイル取得方法

ダンプ ファイルの解析方法

取得したダンプ ファイルは、以下の「デバッガ ツール」で紹介している Debugging Tools for Windows に含まれる windbg.exe や cdb.exe などのデバッガを使って解析することができます。
関連情報
Microsoft では、ダンプ ファイルを取得するためのさまざまなデバッガ ツールを提供しています。ここでは、原因を調査するために広く利用されている Debugging Tools for Windows を紹介します。

Debugging Tools for Windows

Debugging Tools for Windows は、Windows 2000、Windows XP、Windows Server 2003、Windows Vista、Windows Server 2008、Windows 7、および Windows Server 2008 R2 を実行しているシステムでドライバ、アプリケーション、サービス、およびオペレーティング システム自体をデバッグするのに使用できる一般的なデバッガ ツールです。最新の Microsoft Debugging Tools for Windows を入手するには、次のマイクロソフト Web サイトを参照してください。


32bit ユーザーモード プロセスのダンプ ファイルを取得する場合は x86 版を、64bit ユーザーモード プロセスのダンプ ファイルを取得する場合は x64 版をご利用ください。なお、Debugging Tools for Windows は、本技術文書の執筆時点では、Windows Driver Kit、Windows SDK に含まれていますが、今後ダウンロードサイトの変更などが行われる可能性があります。

機能

Debugging Tools for Windows に含まれる ADPlus.vbs (バージョンによっては ADPlus_old.vbs) を使用し "ハングモード" あるいは "クラッシュモード" でデバッガを実行し、ダンプ ファイルを取得することができます。ADPlus.vbs を使用する場合、プロセスが応答を停止する場合 ("ハングアップ") は現象が発生してから、システムにログオンし ADPlus.vbs を手動で実行する必要があります。詳細については、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
286350 ADPlus を使用した "ハング" および "クラッシュ" のトラブルシューティング方法

インストール

このツールはインストーラを実行し、コンピュータにインストールします。しかし、別のコンピュータにインストールし、インストール ディレクトリごとコピーして使用することができます。ソフトウェア構成を変更できない運用環境で使用する際に役立ちます。また、削除する際はコピーしたフォルダを削除するだけです。

このツールは英語版のみ提供していますが、日本語版 Windows にもインストール可能です。
関連情報
IIS 上で動作する Web アプリケーションでメモリ不足エラーが発生する場合の対処方法を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
954828 IIS 上で動作する Web アプリケーションでメモリ不足エラーが発生する場合にトラブルシューティングする方法
プロパティ

文書番号:929117 - 最終更新日: 09/29/2016 16:20:00 - リビジョン: 4.0

Microsoft Internet Information Services 6.0, Microsoft Internet Information Services 7.0, Microsoft Internet Information Services 7.5

  • kbharmony kbexpertiseinter kbhowto KB929117
フィードバック