文書番号: 820729 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

この資料では、HTTP API のエラー ログ機能について説明します。

HTTP ベースのアプリケーションで発生する一部のエラーは、アプリケーションに戻されて処理される代わりに HTTP API によって自動的に処理されます。この動作が実行されるのは、このようなエラーが頻繁に発生したときにこの動作がないと、イベント ログまたはアプリケーション ハンドラーの許容量を超える可能性があるためです。

以下のトピックでは、HTTP API のエラー ログのさまざまな状況について説明します。
  • HTTP API エラー ログの構成
    HTTP API でログに記録するエラー、ログ ファイルの許可される最大サイズ、およびログ ファイルの場所は、レジストリの設定を使用して制御します。
  • HTTP API エラー ログの形式
    HTTP API によって作成されるログ ファイルは、W3C (World Wide Web Consortium) のログ ファイル規則に準拠しています。標準のツールを使用してこれらのログ ファイルを解析することができます。ただし、W3C ログ ファイルとは異なり、HTTP API ログ ファイルは列名を含んでいません。
  • HTTP API でログに記録されるエラーの種類
    HTTP API は多くの一般的なエラーをログに記録します。

詳細

HTTP API エラー ログの構成

HTTP API エラー ログを自動で構成するには、「Fix it で解決する」セクションに進んでください。自分で HTTP API エラー ログを構成するには、「自分で解決する」セクションに進んでください。

Fix it で解決する



この問題を自動的に解決するには、[この問題を解決する] ボタンまたはリンクをクリックします。[ファイルのダウンロード] ダイアログ ボックスで [実行] をクリックし、Fix it ウィザードの手順に従います。

HTTP API のエラー ログを無効にする
Microsoft Fix it 50635
HTTP API のエラー ログを有効にする
Microsoft Fix it 50634


注意事項
  • このウィザードは英語版のみである場合があります。しかし、自動的な解決は英語版以外の Windows でも機能します。
  • 問題のあるコンピューターとは別のコンピューターを操作している場合、Fix it ソリューションをフラッシュ ドライブまたは CD に保存することで、問題のあるコンピューターで実行することができます。



自分で解決する

HTTP API のエラー ログは、HTTP \Parameters キーの下にある 3 つのレジストリ値で制御されます。これらのキーは、次のレジストリ キーに存在します。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
注: 構成値の場所と形式は、新しいバージョン Windows オペレーティング システムでは変更されることがあります。

レジストリ値を変更したり、ログ ファイルやログ ファイルが含まれるフォルダーを表示または変更したりするには、Administrator またはローカル システムの資格情報が必要です。

レジストリ値内の構成情報は、HTTP API ドライバーが起動されるときに読み込まれます。そのため、設定を変更した場合は、ドライバーを停止してから再起動し、新しい値を読み込む必要があります。この操作を行うには、次のコンソール コマンドを入力します。
net stop http
net start http
ログ ファイルの名前を指定するには、次の名前付け規則を使用します。
httperr + シーケンス番号 + .log
例: httperr4.log
ログ ファイルは、ErrorLogFileTruncateSize レジストリ値で指定された最大サイズに達すると再び最初から記録されます。この値を 1 MB より小さくすることはできません。

エラー ログの構成が無効な場合または HTTP API がログ ファイルに記録しているときに何らかのエラーが発生した場合、HTTP API は、イベント ログを使用してエラー ログが実行されていないことを管理者に通知します。

次の表では、レジストリ構成値について説明します。
元に戻す全体を表示する
レジストリの値説明
EnableErrorLoggingエラー ログを有効にする場合は、この DWORD を TRUE に設定し、無効にする場合は FALSE に設定します。既定値は TRUE です。
ErrorLogFileTruncateSizeこの DWORD でエラー ログ ファイルの最大サイズをバイト単位で指定します。既定値は 1 MB (0x100000) です。

注: 既定値より小さい値を指定することはできません。
ErrorLoggingDirこの文字列で、HTTP API によるログ ファイルの保存先フォルダーを指定します。

指定したフォルダー内に、HTTP API によってサブフォルダー HTTPERR が作成され、そのサブフォルダー内にログ ファイルが保存されます。このサブフォルダーとログ ファイルには同じアクセス許可が設定されます。Administrator アカウントとローカル システム アカウントにはフル コントロールのアクセス権が付与されます。その他のユーザーはアクセスできません。

レジストリでフォルダーが指定されていない場合は、次の既定のフォルダーが使用されます。
%SystemRoot%\System32\LogFiles

注: ErrorLoggingDir 文字列の値には完全修飾ローカル パスを指定する必要があります。ただし、%SystemRoot% を含めることができます。ネットワーク ドライブまたはネットワーク共有を使用することはできません。

HTTP API エラー ログの形式

一般的に、HTTP API エラー ログ ファイルに列見出しが含まれないことを除いて、HTTP API エラー ログ ファイルの形式は W3C エラー ログと同じです。HTTP API エラー ログでは各行に 1 つのエラーが記録されます。各フィールドは特定の順序で表示されます。前のフィールドと次のフィールドは 1 つのスペース文字 (0x0020) で区切られます。各フィールド内ではスペース文字、タブ、および印刷できない制御文字の代わりに、+ 記号 (0x002B) が使用されます。

次の表に、エラー ログ レコード内のフィールドおよびフィールドの順序を示します。
元に戻す全体を表示する
フィールド説明
日付日付フィールドは W3C の形式に従っています。このフィールドは、世界協定時刻 (UTC) を基にしています。日付フィールドには、YYYY-MM-DD の形式で常に 10 個の文字が表示されます。たとえば、2003 年 5 月 1 日は 2003-05-01 で表されます。
時間時間フィールドは W3C の形式に従っています。このフィールドは UTC を基にしています。時間フィールドには、MM:HH:SS の形式で常に 8 個の文字が表示されます。たとえば、午後 5 時 30 分 (UTC) は 17:30:00 で表されます。
クライアント IP アドレス影響を受けているクライアントの IP アドレス。このフィールドの値は IPv4 アドレスまたは IPv6 アドレスです。クライアントの IP アドレスが IPv6 アドレスである場合、アドレスに ScopeId フィールドも含まれます。
クライアント ポート影響を受けているクライアントのポート番号。
サーバー IP アドレス影響を受けているサーバーの IP アドレス。このフィールドの値は IPv4 アドレスまたは IPv6 アドレスです。サーバーの IP アドレスが IPv6 アドレスである場合、アドレスに ScopeId フィールドも含まれます。
サーバー ポート影響を受けているサーバーのポート番号。
プロトコル バージョン使用されているプロトコルのバージョン。

接続がプロトコル バージョンを識別できるように解析された場合、空のフィールドのプレースホルダーとしてハイフン (0x002D) が使用されます。

解析されるメジャー バージョン番号またはマイナー バージョン番号が 10 以上の場合、バージョンは HTTP/?.? として記録されます。
Verb解析される最後の要求によって渡される verb 状態。不明な verb も含まれます。255 バイトを超える verb は 255 バイトになるように切り捨てられます。verb が使用できない場合は、空のフィールドのプレースホルダーとしてハイフン (0x002D) が使用されます。
CookedURL およびクエリURL およびその URL に関連付けられているすべてのクエリが、疑問符 (0x3F) で区切られて 1 つのフィールドとしてログに記録されます。このフィールドの長さは 4,096 バイトに制限され、それを超える部分は切り捨てられます。

URL が解析された ("cooked" と呼ばれます) 場合、URL はローカル コード ページ変換で記録され、Unicode フィールドとして処理されます。

ログが記録されるタイミングで URL が解析 ("cooked") されていない場合、Unicode 変換ではなく、そのままコピーされます。

HTTP API がこの URL を解析できない場合は、空のフィールドのプレースホルダーとしてハイフン (0x002D) が使用されます。
プロトコルのステータスプロトコルのステータスは 999 を超えることはありません。

要求に対する応答のプロトコルのステータスが使用可能な場合は、このフィールドに記録されます。

プロトコルのステータスが使用できない場合は、空のフィールドのプレースホルダーとしてハイフン (0x002D) が使用されます。
SiteId (サイト ID)このバージョンの HTTP API. では使用されません。このフィールドにはプレースホルダーとしてハイフン (0x002D) が常に表示されます。
理由フレーズこのフィールドには、ログに記録されているエラーの種類を識別する文字列が含まれます。このフィールドが空白のままになることはありません。
キュー名要求のキュー名。
次に、HTTP API エラー ログのサンプル行を示します。
2002-07-05 18:45:09 172.31.77.6 2094 172.31.77.6 80 HTTP/1.1 GET /qos/1kbfile.txt 503 ? ConnLimit 2002-07-05 19:51:59 127.0.0.1 2780 127.0.0.1 80 HTTP/1.1 GET /ThisIsMyUrl.htm 400 ? Hostname 2002-07-05 19:53:00 127.0.0.1 2894 127.0.0.1 80 HTTP/2.0 GET / 505 - Version_N/S 2002-07-05 20:06:01 172.31.77.6 64388 127.0.0.1 80 - - - - - Timer_MinBytesPerSecond

HTTP API でログに記録されるエラーの種類

HTTP API のログには、クライアントへのエラー応答、接続タイムアウト、孤立した要求、および切断された接続のうち、正しく処理されなかったものが記録されます。

次に、HTTP API のログに記録されるエラーの種類の一覧を示します。
  • クライアントへの応答 HTTP API は、たとえば、最後に受信した要求内の解析エラーが原因になっている 400 エラーなどのエラー応答をクライアントに送信します。HTTP API は、エラー応答を送信した後に接続を閉じます。
  • 接続タイムアウト HTTP API の設定により、接続がタイムアウトになりました。接続がタイムアウトになったときに要求が保留中になっている場合は、その要求を使用して接続の詳細情報をエラー ログに記録します。
  • 孤立した要求 ユーザーモードの処理が予期せずに停止したときに、その処理に配信される要求がキュー内に残っています。HTTP API は、孤立した要求をエラー ログに記録します。
各エラー行の最後のフィールドとして常に表示される Reason Phrase 文字列によって特定のエラーの種類が示されます。次の表に、HTTP API の理由フレーズを示します。
元に戻す全体を表示する
理由フレーズ説明

AppOfflineサービス使用不能エラー (HTTP エラー 503) が発生しました。アプリケーション エラーが原因でアプリケーションがオフラインになったためにサービスを使用できません。
AppPoolTimerサービス使用不能エラー (HTTP エラー 503) が発生しました。アプリケーション プール プロセスがビジー状態で要求を処理できないために、サービスを使用できません。
AppShutdownサービス使用不能エラー (HTTP エラー 503) が発生しました。管理者ポリシーに対する応答でアプリケーションが自動的にシャットダウンされたためにサービスを使用できません。
BadRequest要求を処理しているときに解析エラーが発生しました。
Client_Reset要求をワーカー プロセスに割り当てる前に、クライアントとサーバーの間の接続が閉じられました。この動作の最も一般的な原因は、クライアントがサーバーへの接続を完了前に閉じることです
Connection_Abandoned_By_AppPoolアプリケーション プールのワーカー プロセスが、予期せず終了したか、プロセスのハンドルを閉じることによって保留中の要求を孤立させました。
Connection_Abandoned_By_ReqQueueアプリケーション プールのワーカー プロセスが、予期せず終了したか、プロセスのハンドルを閉じることによって保留中の要求を孤立させました。Windows Vista/Windows Server 2008 以降のバージョンに固有です。
Connection_Droppedサーバーが最後の応答パケットを送信する前に、クライアントとサーバーの間の接続が閉じられました。この動作の最も一般的な原因は、クライアントがサーバーへの接続を完了前に閉じることです
Connection_Dropped_List_Full切断されたクライアントとサーバーの間の接続の一覧がいっぱいになっています。Windows Vista/Windows Server 2008 以降のバージョンに固有です。
ConnLimitサービス使用不能エラー (HTTP エラー 503) が発生しました。サイト レベルの接続の制限に到達したか制限を超えたためにサービスを使用できません。
Connections_Refusedカーネルの NonPagedPool メモリが 20 MB 未満に減少し、http.sys が新しい接続を受け付けなくなりました。
Disabledサービス使用不能エラー (HTTP エラー 503) が発生しました。管理者がアプリケーションをオフラインにしたためにサービスを使用できません。
EntityTooLargeエンティティが許可されている最大サイズを超えています。
FieldLengthフィールド長の制限を超えています。
Forbidden解析中に禁止されている要素またはシーケンスが検出されました。
Headerヘッダー内で解析エラーが発生しました。
Hostnameホスト名を処理しているときに解析エラーが発生しました。
Internal内部サーバー エラー (HTTP エラー 500) が発生しました。
Invalid_CR/LF無効なキャリッジ リターンまたはライン フィードが発生しました。
LengthRequired必要な長さの値がありません。
N/Aサービス使用不能エラー (HTTP エラー 503) が発生しました。内部エラー (メモリ割り当てエラーや URL 予約リストの競合など) が発生したためにサービスを使用できません。
N/I不明な転送エンコードのために未実装エラー (HTTP エラー 501) またはサービス使用不能エラー (HTTP エラー 503) が発生しました。
Number数字を処理しているときに解析エラーが発生しました。
Precondition必要な前提条件がありません。
QueueFullサービス使用不能エラー (HTTP エラー 503) が発生しました。アプリケーション要求キューがいっぱいになっているためにサービスを使用できません。
RequestLength要求の長さの制限を超えています。
Timer_AppPoolアプリケーション プール キュー内で、要求が、サーバー アプリケーションによってキューから取り出されて処理されるのを待機している時間が長すぎたために接続が期限切れになりました。このタイムアウト期間は ConnectionTimeout です。この値は、既定では 2 分間に設定されています。
Timer_ConnectionIdle接続が期限切れになり、アイドル状態のままになっています。ConnectionTimeout の既定の時間は 2 分間です。
Timer_EntityBody要求のエンティティ本体が到着する前に接続が期限切れになりました。要求にエンティティ本体があることが明らかになると、HTTP API が Timer_EntityBody タイマーをオンにします。最初は、このタイマーの制限は ConnectionTimeout の値 (通常は 2 分間) に設定されます。この要求で別のデータの指定を受け取るたびに、HTTP API がタイマーをリセットし、さらに接続を 2 分間 (または ConnectionTimeout で指定された時間) 延長します。
Timer_HeaderWait要求のヘッダーの解析にかかった時間が既定の制限時間である 2 分間を超えたために接続が期限切れになりました。
Timer_MinBytesPerSecondクライアントが適切な速度で応答を受信しなかったために接続が期限切れになりました。応答の送信速度が既定の 240 バイト/秒より遅くなっていました。これは、MinFileBytesPerSec メタベース プロパティで制御できます。
Timer_ReqQueueアプリケーション プール キュー内で、要求が、サーバー アプリケーションによってキューから取り出されるのを待機している時間が長すぎたために接続が期限切れになりました。このタイムアウト期間は ConnectionTimeout です。この値は、既定では 2 分間に設定されています。Windows Vista/Windows Server 2008 以降のバージョンに固有です。
Timer_Response予約済み。現在使用されていません。
Timer_SslRenegotiation クライアントとサーバーの間の SSL 再ネゴシエーションにかかった時間が既定のタイムアウトである 2 分を超えたために、接続が期限切れになりました。
URLURL を処理しているときに解析エラーが発生しました。
URL_LengthURL が許可されている最大サイズを超えています。
Verbverb を処理しているときに解析エラーが発生しました。
Version_N/S未サポート バージョン エラー (HTTP エラー 505) が発生しました。

関連情報

IIS HTTP エラー ログ収集のログ フィールドを追加する方法の詳細については、以下のサポート技術情報番号をクリックしてください。
832975 IIS 6.0 および IIS 7.0 で Httperr#.log ファイルのログ記録に使用できる追加のプロパティ

プロパティ

文書番号: 820729 - 最終更新日: 2013年4月26日 - リビジョン: 9.0
この資料は以下の製品について記述したものです。
  • Windows Server 2012 Standard
  • Windows 8
  • Windows 8 Pro
  • Windows 8 Enterprise
  • Windows 7 Professional
  • Windows 7 Enterprise
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 Enterprise
  • Windows Vista Enterprise
  • Windows Vista Ultimate
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003 R2 Enterprise Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Standard x64 Edition
  • Microsoft Windows Server 2003 R2 Enterprise x64 Edition
キーワード:?
kbhttphandlers kbhttp kbapi kberrmsg kbinfo kbfixme kbmsifixme KB820729
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com