シングルページメソッドを持つ Web フォームがあります。私の他の Web アプリは、未処理の例外を Web サーバーのシステム イベント ログに記録します。私が一緒に仕事をしている他の開発者は、イベント ログにアプリ エラーのエントリが表示されることを期待しているので、このアプリにも同じことをしてもらいたいと考えています。
ただし、ページメソッド内のコードの呼び出しから例外がキャッチされたときに、アプリにエラーメールを送信させます。これが発生すると、イベント ログに書き込まれません。注: ページ メソッドは、電子メール通知メソッドを呼び出した後に例外を再スローします。
これまで読んだことから、ASP.Net はデフォルトでエラーをイベント ログに記録しているようです。ページメソッド/Webメソッドについては、基本的にそれを呼び出すクライアントコードに例外をスローするため、同じことが当てはまらないと思います。
イベントログに書き込むように、その例外を適切にバブルアップさせる簡単な方法はありますか? 他のアプリは私が見たものから直接イベント ログに書き込むことはありません。そのため、セキュリティ担当者が多くのことをロックダウンしている (善意で、セキュリティを万全に) ため、アプリケーションが新しいソースを作成できるとは思いません。
[WebMethod]
public static object MyPseudoWebMethod()
{
try
{
// My exception spawning unreliable code here
}
catch(Exception ex)
{
// Cleanup ...
this.SendErrorNotification(ex);
throw; // <-- This doesn't bubble up but I'd love for it to!
}
}