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 やスタック トレースなど)が含まれていました。