2012-09-05 6 views
0

Microsoft는 서비스로 실행되는 Microsoft.EnterpriseLibrary.Logging 을 사용하는 타사 소프트웨어를 사용합니다.EnterpriseLibrary.Logging 응용 프로그램을 종료합니다.

최근에이 서비스가 여러 번 중지되었습니다. Windows 이벤트 로그의 데이터 만 있습니다. Stacktrace는 ArgumentNullException이 MS EntLib 로깅에 의해 throw 된 것을 보여줍니다.

Trace.CorrelationManager.LogicalOperationStack.Peek()

이 가

이 사람이 나를 도울 수

널 왜 이런 일이 반환 :이 발생합니다 같은

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

나는이 문제를 확인하고이 보인다?

+0

사용되는 Enterprise Library의 버전을 알고 있습니까? – user957902

+0

이 예외는 백그라운드 스레드에서 발생합니까? – Steven

+0

스티븐, 네,이 서비스는 여러 스레드를 실행합니다. – bodziec

답변

0

이 문제는 이전 버전에서도 E-Lib의 알려진 버그로 보입니다.

여러 스레드에서 로깅 AB를 사용할 때 처리되지 않은 예외로 알려져 있습니다.

"근본적인 문제는 .NET 2.0 RTM에서 자식 스레드가 생성 될 때까지 스택이 존재하는 경우 부모 스레드의 작업 스택이 자식과 공유된다는 것입니다."

더 여기 읽기 : 매우 앱 아키텍처에 따라 다릅니다으로

하드 http://entlib.codeplex.com/workitem/9592이에 대한 일반적인 솔루션을 제안 할 수 있습니다.

관련 문제