0

サービスとして実行されているMicrosoft.EnterpriseLibrary.Loggingを使用しているサードパーティソフトウェアを使用しています。

最近、そのサービスは何度も停止しました。Windowsイベントログからのデータのみがあります。Stacktraceは、MSEntLibLoggingによってArgumentNullExceptionがスローされたことを示しています。

Event Type: Error Event Source: .NET Runtime Event Category: None Event ID: 1026 Date: 04/09/2012 Time: 19:05:23 User: N/A Computer: XXX Description: Application: XXX.Service.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.ArgumentNullException Stack: at Microsoft.Practices.EnterpriseLibrary.Logging.LogEntry.BuildCategoriesCollection(System.String) at Microsoft.Practices.EnterpriseLibrary.Logging.Tracer.WriteTraceMessage(System.String, System.String, System.Diagnostics.TraceEventType) at Microsoft.Practices.EnterpriseLibrary.Logging.Tracer.WriteTraceEndMessage(System.String) at Microsoft.Practices.EnterpriseLibrary.Logging.Tracer.Dispose(Boolean) at Microsoft.Practices.EnterpriseLibrary.Logging.Tracer.Dispose() at XXX

私はこれをチェックしました、そしてそれはそれが原因であるように見えます:

Trace.CorrelationManager.LogicalOperationStack.Peek()

nullを返す

なぜこれが起こったのか誰かが私を助けることができますか?

4

1 に答える 1

0

この問題は、以前のバージョンでも E-Lib の既知のバグのようです。

として知られている: 複数のスレッドからログ AB を使用する場合の未処理の例外。

「根本的な問題は、.NET 2.0 RTM では、親スレッドの操作スタックが、子が作成されるまでに存在していた場合、親スレッドの操作スタックが子と共有されていたことです。」

詳細はこちら: http://entlib.codeplex.com/workitem/9592

アプリのアーキテクチャに大きく依存するため、これに対する一般的な解決策を提案するのは困難です。

于 2013-10-05T23:05:26.383 に答える