4

私の Web アプリケーションには、一方向の非同期 WCF サービスがあります。このサービスでは、global.asax Application_Error で行っているように、すべての例外をキャッチしたいと考えています。私はこれらのイベントを処理しようとしました:

AppDomain.CurrentDomain.UnhandledException += (s,e) => { //some logic };
AppDomain.CurrentDomain.FirstChanceException += (s,e) => { //some logic };

試してみました:

//this one is for Win Forms Application
Application.ThreadException += (s,e) => { //some logic };

//this one is for Web Application
HttpContext.Current.ApplicationInstance.Error += (s,e) => { //some logic };

しかし、これらのハンドラーには到達しません。

他に何を試すことができますか?

4

2 に答える 2

2

これらのコード行を Web ページに挿入すると、それらは失われます。なんで?

Web ページの寿命は限られているためです。イベント処理を存続させるには、それをグローバル asax ファイルに入れる必要があります。

于 2012-10-26T14:03:21.740 に答える
2

WCF では、IErrorHandler を実装するオブジェクトを Dispatcher の Errorhandlers に挿入できます。

MSDN ページにサンプル コードがあります。

于 2012-10-26T14:06:51.180 に答える