0

Application_Error()グローバル アプリケーション ファイル ( ) 内で例外がスローされて処理されると、HttpHandler で問題が発生しますglobal.asaxexception.Messageアプリケーションの EventLog ソースに を書き込もうとしています。

質問する前に明確にするために、はい、EventLog ソースが存在します。私が抱えている問題は、例外自体がアプリケーションの EventLog Source に書き込まれず (この例では、イベント ログ ソースの名前は としますHttpEndpoint)、代わりに ASP.NET 4.0 にログを記録することです。 30319.0 イベント ログ ソース。

global.asax のApplication_Error()メソッドを廃止せずに、このエラーがスローされる前に実行されるメソッドをラップし、その方法でtry{}catch{}アプリケーションのイベント ログ ソースに書き込むことなく、これを回避する方法はありますか?

のコードApplication_Error()は非常に単純です。

  protected void Application_Error( object sender, EventArgs e )
  {
     var exception = Server.GetLastError();

     if ( exception == null )
     {
        return;
     }

     // try casting exception to known types for more specific event log entries
     var msmqOutputQueueWriteFailedException = exception as OutputMessageQueueWriteFailedException;

     if ( msmqOutputQueueWriteFailedException != null )
     {
        _windowsEventLog.LogFatal( _eventLogSource, string.Format( CultureInfo.CurrentCulture, "MSMQ Message Send Failure: {0} - InnerException Message: {1}", msmqOutputQueueWriteFailedException.Message, msmqOutputQueueWriteFailedException.InnerException.Message ) );
     }

     _windowsEventLog.LogError( _eventLogSource, String.Format( CultureInfo.CurrentCulture, "Global Exception was thrown: {0}", exception.Message ), exception );
  }

のイベント ログ ソースはWeb.Config ファイル内にHttpEndpointとして保持され、 のメンバーに割り当てられます。また、アプリケーション内で同じイベント ログ ソース (外部) に他のログを記録しましたが、すべて正常に動作します。<AppSetting>_eventLogSourceglobal.asaxglobal.asax

何か案は?ヘルプ/フィードバックは大歓迎です。

4

1 に答える 1