ページ

2013年7月10日水曜日

IISのエラー詳細について調査してみる

IISに限ったことではないが、HTTPサーバーの多くにログ記憶機能が実装されている。
HTTPサーバー内部でエラーが発生した場合の原因調査には必須な機能ではないでしょうか。

以下はIIS7のIISマネージャメニューのログ記録設定画面。


形式はW3Cが一般的、というかデフォルトです。
ディレクトリに指定されたところにログファイルが作成されます。
サイトの番号順に「W3SVC」というサブフォルダの中に、「u_ex######.log」(#は日付)という名前のログファイルが作成されます。
HTTPクライアントからのリクエストに対して、1行ログが記録されます。
正常だとHTTPサーバーは200を返して終了します。

HTTPサーバー 500だと「サーバー内部エラー」ですが、それだとざっくり過ぎて詳細がわかりません。
詳細を知りたい場合は、「フィールドの選択」で、「プロトコルの副状態」を追加しておきます。


  • [日付 (date)]: 要求が発生した日付です。
  • [時間 (time)]: 要求が発生した時刻 (協定世界時 (UTC)) です。
  • [クライアント IP アドレス (c-ip)]: 要求を発行したクライアントの IP アドレスです。
  • [ユーザー名 (cs-username)]: サーバーにアクセスした認証済みユーザーの名前です。 匿名ユーザーはハイフンで示されます。
  • [サービス名 ( s-sitename )]: 要求を処理したサイト インスタンス番号です。
  • [サーバー名 (s-computername)]: ログ ファイルのエントリが生成されたサーバーの名前です。
  • [サーバー IP アドレス (s-ip)]: ログ ファイル エントリが生成されたサーバーの IP アドレスです。
  • [サーバー ポート (s-port)]: サービスに対して構成されているサーバー ポート番号です。
  • [メソッド (cs-method)]: 要求された操作 (GET メソッドなど) です。
  • [URI ステム (cs-uri-stem)]: 操作の Universal Resource Identifier (ターゲット) です。
  • [URI クエリ (cs-uri-query)]: クライアントが実行しようとしていたクエリです (存在する場合)。 Universal Resource Identifier (URI) クエリは、動的なページでのみ必要です。
  • [プロトコルの状態 (sc-status)]: HTTP または FTP 状態コードです。
  • [プロトコルの副状態 ( sc-substatus )]: HTTP または FTP 副状態コードです。
  • [Win32 の状態 (sc-win32-status)]: Windows 状態コードです。
  • [送信バイト数 (sc-bytes)]: サーバーが送信したバイト数です。
  • [受信バイト数 (cs-bytes)]: サーバーが受信したバイト数です。
  • [所要時間 (time-taken)]: 操作にかかった時間 (ミリ秒単位) です。
  • [プロトコル バージョン (cs-version)]: クライアントが使用したプロトコルのバージョン (HTTP または FTP) です。
  • [ホスト (cs-host)]: ホスト名です (存在する場合)。
  • [ユーザー エージェント (cs(UserAgent))]: クライアントが使用したブラウザーの種類です。
  • [Cookie (cs(Cookie))]: 送受信された Cookie の内容です (存在する場合)。
  • [参照者 (cs(Referer))]: ユーザーが直前にアクセスしたサイトです。 このサイトから現在のサイトにリンクされていました。



  • エラーの詳細コートと対処法については以下のMicrosoft サポートサイトを参考にします。

    IIS 7.0、IIS 7.5、および IIS 8.0 の HTTP 状態コード




    今回は、500エラーだけ、集中的に調査したいので、一覧を記載しておきます。


    500.0 - モジュールまたは ISAPI のエラーが発生しました。
    500.11 - Web サーバーでアプリケーションがシャットダウンしています。
    500.12 - Web サーバーでアプリケーションが再起動のためビジー状態になっています。
    500.13 - Web サーバーが非常にビジーです。
    500.15 - GLOBAL.ASA に対する直接要求は許可されていません。
    500.19 - 構成データが無効です。
    500.21 - モジュールが認識されません。
    500.22 - ASP.NET httpModule 構成は、マネージ パイプライン モードでは適用されません。
    500.23 - ASP.NET httpHandler 構成は、マネージ パイプライン モードでは適用されません。
    500.24 - ASP.NET 偽装の構成は、マネージ パイプライン モードでは適用されません。
    500.50 - RQ_BEGIN_REQUEST 通知の処理中に再書き込みエラーが発生しました。構成または受信規則の実行エラーが発生しました。
    注: ここでは、受信規則および送信規則の両方について、配布された規則の構成が読み込まれます。
    500.51 - GL_PRE_BEGIN_REQUEST 通知の処理中に再書き込みエラーが発生しました。グローバル構成またはグローバル規則の実行エラーが発生しました。
    注: ここでは、グローバルな規則の構成が読み込まれます。
    500.52 - RQ_SEND_RESPONSE 通知の処理中に再書き込みエラーが発生しました。送信規則の実行エラーが発生しました。
    500.53 - RQ_RELEASE_REQUEST_STATE 通知の処理中に再書き込みエラーが発生しました。送信規則の実行エラーが発生しました。この規則は、出力ユーザー キャッシュが更新される前に実行されるよう構成されています。
    500.100 - 内部 ASP エラー。8.0 の HTTP 状態コード

    0 件のコメント:

    コメントを投稿