IIS の失敗した要求のトレースが機能しない

IIS の失敗した要求のトレースが機能しない

IIS 8 で失敗した要求のトレースを設定しましたが、期待どおりにエラーが記録されません。「500 内部サーバー エラー」を生成する ASP クラシック ページがありますが、FailedReqLogFiles フォルダーは空です。私の設定は次のとおりです。

  • 失敗したリクエストトレースモジュールがインストールされています

  • ASP クラシック ページによって生成されたエラー #500 をトレースするために、次のルールを設定しました。

<traceFailedRequests>
    <add path="*">
        <traceAreas>
            <add provider="ASP" verbosity="Verbose" />
            <add provider="ISAPI Extension" verbosity="Verbose" />
            <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,FastCGI,WebSocket,RequestRouting" verbosity="Verbose" />
        </traceAreas>
        <failureDefinitions timeTaken="00:00:00" statusCodes="500-999" />
    </add>
</traceFailedRequests>
  • enabled="true"サイトのデフォルトとして設定している Web サイトが 100 以上あるため、次のようになります。
<siteDefaults>
    <traceFailedRequestsLogging enabled="true" directory="%SystemDrive%\inetpub\logs\FailedReqLogFiles" maxLogFiles="50" />
  • 最後に、エラーをスローするテスト ページを作成しました。
<%
Option Explicit
Response.Write a ' Variable is undefined: 'a'
%>

エラーは%SystemDrive%\inetpub\logs\FailedReqLogFiles期待どおりに記録されますが、実際のコンテンツページで生成されたエラーは記録されません。これらのページの違いは、Rewrite Module経由で呼び出され、URLが次のようになることです。https://example.com/about.htmlの代わりに参考:

これを修正するにはどうすればいいでしょうか?

答え1

この記事そこには次のようなメモがある。

URL 書き換えモジュールの後に失敗した要求トレースがインストールされた場合、トレース プロバイダーの「書き換え」領域が利用できないことがあります。そこに「書き換え」領域が表示されない場合は、「プログラムの追加と削除」に移動し、URL 書き換えモジュール インストーラーを修復モードで実行します。

URL 書き換えモジュールを再インストールし、失敗した要求トレース ルールを再作成して、「WWW サーバー」プロバイダーの「領域」セクションに「書き換え」が存在する (および選択されている) ことを確認しました。

失敗したリクエストはその後ログに記録され、イベント ビューアーには表示されなかった情報(障害が発生したページの完全な URL やスタック トレースなど)が含まれていました。

関連情報