¿Cómo se supone que una aplicación ASP.NET trata las excepciones no controladas que se producen en un hilo de fondo que no es de solicitud (debido a errores)?¿Cómo tratar las excepciones de subprocesos no controladas en ASP.NET?
De manera predeterminada, tales excepciones hacen que el proceso finalice. Esto es inaceptable en la configuración de un proceso de trabajo de ASP.NET porque las solicitudes que se ejecutan simultáneamente se cancelan de forma imprevista. También es un problema de rendimiento.
Las excepciones en un subproceso de solicitud no son un problema porque ASP.NET las maneja (al mostrar una página de error).
El evento AppDomain.UnhandledException
permite observar que se ha producido una excepción, pero la terminación no se puede evitar en ese punto.
Aquí hay una reproducción que debe pegarse en un código de página ASPX detrás.
protected void Page_Load(object sender, EventArgs e)
{
var thread = new Thread(() =>
{
throw new InvalidOperationException("some failure on a helper thread");
});
thread.Start();
thread.Join();
}
La única solución que conozco es no dejar nunca que una excepción "escape" no se maneje. ¿Hay alguna otra solución más global y exhaustiva para esto?
Tengo el mismo problema ... es extraño cómo el equipo asp.net nunca consideró una solución para esto.Tengo un módulo http de tercera parte que está fallando en algún momento y arrojando excepciones que hacen que el proceso de trabajo muestre "Servicio no disponible". –