AutoFac을 사용하여 2 명의 소비자가있는 Windows 서비스를 설정했습니다. 행복한 경로에서, 이것은 정말로 잘 작동합니다. 나는 MassTransit이 나를 위해 예외 처리 한 impresison의 밑에 있었다. 워드 프로세서 상태로 : http://docs.masstransit-project.com/en/latest/overview/errors.htmlMassTransit의 예외적 인 버블 링 소비자가 Windows 서비스를 중단 함
가장 쉬운 것은 당신의 소비자 방법 및 MassTransit 중 예외 거품이 자동으로
예외에 대한 예외 을 잡을 수 있도록하는 것입니다 소비자에게 던져지면 MassTransit은 실제로 결함을 생성하지만 내 서비스는 여전히 충돌합니다.
응용 프로그램 : WerkgeverService.exe 프레임 워크 버전 : v4.0.30319 설명 : 처리되지 않은 예외로 인해 프로세스가 종료되었습니다. 예외 정보 : AutoMapper.AutoMapperMappingException 스택 : System.Runtime.CompilerServices.AsyncMethodBuilderCore.b__5 (은 System.Object)에서 System.Threading.QueueUserWorkItemCallback.WaitCallback_Context (은 System.Object)에서 System.Threading.ExecutionContext.RunInternal에서 (System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at 에서 System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ThreadPoolWorkQueue.Dispatch()에서 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()에서
예외가 기록됩니다 나는 모든 캐치되지 않는 예외 로그인 때문에 : 실제로
Protected Overrides Sub OnStart(args() As String)
' Add code here to start your service. This method should set things
' in motion so your service can do its work.
Try
Initialize()
AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf HandleBubbledException
Catch ex As Exception
Me.EventLog.WriteEntry(ex.Message, EventLogEntryType.Error)
Throw
End Try
End Sub
Private Sub HandleBubbledException(sender As Object, args As UnhandledExceptionEventArgs)
Dim exception = DirectCast(args.ExceptionObject, Exception)
Me.EventLog.WriteEntry(String.Format("Message: {0} {2}Stacktrace:{2}{1}", exception.Message, exception.StackTrace, Environment.NewLine), EventLogEntryType.Error)
End Sub
예외 자체가 AutoMapper의 하나이며, 로그인 도착을 (그래서이 MassTransit 의해 처리되지 않는) 이벤트 로그 :
Message: Missing type map configuration or unsupported mapping.
Mapping types:
Int32 -> Int64
System.Int32 -> System.Int64
Q 유료 : 모든 소비자에게 try/catch
을 추가하지 않으면 서비스가 중단되는 것을 막을 수있는 방법이 있습니까? AFAIK MassTransit이이 문제를 처리해야합니다 ...