次の方法で共有


CGI アプリケーションでの HTTP 502.2 Bad Gateway エラーのトラブルシューティング

適用対象: インターネット インフォメーション サービス

この記事では、Common Gateway Interface (CGI) アプリケーションの HTTP 502.2 Bad Gateway エラーについて説明し、この問題を解決するためのトラブルシューティング手順について説明します。

症状

インターネット インフォメーション サービス (IIS) でホストされている Web サイトがある。 Web ブラウザーで Web サイトにアクセスすると、次のようなエラー メッセージが表示されることがあります。

アプリケーション <アプリケーション名のサーバー エラー> HTTP エラー 502.2 - 無効なゲートウェイ HRESULT: HRESULT の0xC00000FDまたは0x00000003の説明: 指定された CGI アプリケーションが HTTP ヘッダーの完全なセットを返しませんでした。

原因

この問題は、CGI プロセスが応答を IIS に返す前に、CGI プロセスが予期せず終了するためです。

ツール

トラブルシューティングの手順

IIS 経由で実行されている CGI アプリケーションに要求を送信すると、ユーザーには、予想される応答ではなく、次のエラーが表示されます。

指定された CGI アプリケーションが、HTTP ヘッダーの完全なセットを返さなかった

Netmon トレースをキャプチャします。 以下が示されます:

HTTP: Response to Client; HTTP/1.1; Status Code = 502 - Bad Gateway
HTTP: Protocol Version =HTTP/1.1
HTTP: Status Code = Bad Gateway
HTTP: Reason =Bad Gateway
HTTP: Content-Length =232
HTTP: Content-Type =text/html
HTTP: Server =Microsoft-IIS/6.0
HTTP: Date =Tue, 23 Aug 2005 20:25:47 GMT
HTTP: Data: Number of data bytes remaining = 232 (0x00E8)
00000: 00 11 BC 3E 62 3C 00 0F 1F 6C 1F E1 08 00 45 00 ..%>b<...l.á..E.
00010: 01 9A EF 40 40 00 80 06 00 00 D8 A2 10 5C 0A C8 .šï@@.&euro;...Ø¢.\.È
00020: 04 15 00 50 55 B1 AA C6 89 52 E7 D6 85 01 50 18 ...PU±ªÆ‰RçÖ….P.
00030: 09 2F F9 67 00 00 48 54 54 50 2F 31 2E 31 20 35 ./ùg..HTTP/1.1 5
00040: 30 32 20 42 61 64 20 47 61 74 65 77 61 79 0D 0A 02 Bad Gateway..
00050: 43 6F 6E 74 65 6E 74 2D 4C 65 6E 67 74 68 3A 20 Content-Length: 
00060: 32 33 32 0D 0A 43 6F 6E 74 65 6E 74 2D 54 79 70 232..Content-Typ
00070: 65 3A 20 74 65 78 74 2F 68 74 6D 6C 0D 0A 53 65 e: text/html..Se
00080: 72 76 65 72 3A 20 4D 69 63 72 6F 73 6F 66 74 2D rver: Microsoft-
00090: 49 49 53 2F 36 2E 30 0D 0A 44 61 74 65 3A 20 54 IIS/6.0..Date: T
000A0: 75 65 2C 20 32 33 20 41 75 67 20 32 30 30 35 20 ue, 23 Aug 2005 
000B0: 32 30 3A 32 35 3A 34 37 20 47 4D 54 0D 0A 0D 0A 20:25:47 GMT....
000C0: 3C 68 74 6D 6C 3E 3C 68 65 61 64 3E 3C 74 69 74 <html><head><tit
000D0: 6C 65 3E 45 72 72 6F 72 3C 2F 74 69 74 6C 65 3E le>Error</title>
000E0: 3C 2F 68 65 61 64 3E 3C 62 6F 64 79 3E 3C 68 65 </head><body><he
000F0: 61 64 3E 3C 74 69 74 6C 65 3E 45 72 72 6F 72 20 ad><title>Error 
00100: 69 6E 20 43 47 49 20 41 70 70 6C 69 63 61 74 69 in CGI Applicati
00110: 6F 6E 3C 2F 74 69 74 6C 65 3E 3C 2F 68 65 61 64 on</title></head
00120: 3E 0A 3C 62 6F 64 79 3E 3C 68 31 3E 43 47 49 20 >.<body><h1>CGI 
00130: 45 72 72 6F 72 3C 2F 68 31 3E 54 68 65 20 73 70 Error</h1>The sp
00140: 65 63 69 66 69 65 64 20 43 47 49 20 61 70 70 6C ecified CGI appl
00150: 69 63 61 74 69 6F 6E 20 6D 69 73 62 65 68 61 76 ication misbehav
00160: 65 64 20 62 79 20 6E 6F 74 20 72 65 74 75 72 6E ed by not return
00170: 69 6E 67 20 61 20 63 6F 6D 70 6C 65 74 65 20 73 ing a complete s
00180: 65 74 20 6F 66 20 48 54 54 50 20 68 65 61 64 65 et of HTTP heade
00190: 72 73 2E 3C 2F 62 6F 64 79 3E 3C 2F 62 6F 64 79 rs.</body></body
001A0: 3E 3C 2F 68 74 6D 6C 3E ></html>

HTTP エラー メッセージ FREB ログをキャプチャし、このエラー メッセージをスローしているモジュールを特定します。

CGI プロセスの実行可能ファイルのトラブルシューティングを行って、CGI プロセスが予期せず終了する理由を判断します。 アクセス違反が発生したときに、CGI プロセスのメモリ ダンプ ファイルを生成する必要がある場合があります。

この問題は、CGI アプリケーションがエラーの内容を正確に行い、応答の一部として IIS に送信される HTTP ヘッダー値に無効なデータを挿入するときに発生します。