¿Es posible utilizar un controlador de excepción no controlada en un servicio de Windows?controlador UnhandledException en .Net Windows Service
Normalmente, utilizaría un Componente de manejo de excepciones construido a medida que registra, teléfono, etc. Este componente agrega un controlador a System.AppDomain.CurrentDomain.UnhandledException pero, por lo que puedo ver, esto no logra nada. un servicio de Windows por lo que terminan con este patrón en mis 2 (o 4) puntos de entrada de servicio:
Protected Overrides Sub OnStart(ByVal 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
MyServiceComponent.Start()
Catch ex As Exception
'call into our exception handler
MyExceptionHandlingComponent.ManuallyHandleException (ex)
'zero is the default ExitCode for a successfull exit, so if we set it to non-zero
ExitCode = -1
'So, we use Environment.Exit, it seems to be the most appropriate thing to use
'we pass an exit code here as well, just in case.
System.Environment.Exit(-1)
End Try
End Sub
¿hay alguna manera mi componente de control de excepciones personalizado puede hacer frente a este mejor, así que no tengo que llenar mi OnStart con una desordenada manipulación de plomería?
He encontrado que el evento UnhandledException en un servicio recibe excepciones en otros hilos, siempre que conecte el manejador de eventos desde el principio. Lo conecté en el constructor del servicio en lugar del método OnStart(). Esto también elimina la tubería de excepción fea de su OnStart(). – saille