例外をキャッチしてデータベースに記録するように設計された HttpModule があります。次のようになります。
public class ExceptionLoggingModule : IHttpModule
{
public void Init(HttpApplication context)
{
context.Error += OnError;
}
private static void OnError(object sender, EventArgs e)
{
try
{
var context = (HttpApplication) sender;
var exception = context.Server.GetLastError();
if (exception != null)
{
// Log exception
}
}
catch(Exception)
{
}
}
}
これは一般的に機能しますが、ページ メソッド(つまり、WebMethod 属性でマークされたコード ビハインド ファイル内のメソッド)内でエラーが発生した場合、OnError メソッドが起動しないことに気付きました。
どうして?
ページメソッド自体の内部で例外ログを再実装する以外に、これについてできることはありますか?