現在、Global.asax Application_Error() のエラーを処理する次のコード スニペットがあります。
var ex = server.GetLastError();
server.ClearError();
if (ex is HttpUnhandledException && ex.InnerException != null)
ex = ex.InnerException;
Trace.TraceError(ex.ToString());
// send some output to the user that they should contact support etc
たとえば、404 エラーを含むすべてのエラーをキャッチします (ユーザーが存在しない .aspx URL を入力した場合、またはブラウザーが favicon.ico などを要求し、パイプラインを通過するように静的ファイル要求が設定された場合)。これには 2 つの問題があります: これはログに記録されるべきではなく (ログは役に立たない 404 エラーでいっぱいです)、元の HTTP コードは送り返されなければなりません (そうしないと、検索ボットがエラー ページなどをインデックス化する可能性があります)。
ここで何をログに記録し、何を無視するかをどのように決定しますか? 基本的に、バグを示すアプリケーション/ビジネス エラーを含め、「通常の」HTTP エラーを無視したいと考えています。また、404 エラーだけを除外したいだけではなく、403 もあり、他に何があるかはわかりません。