¿Cómo tratar las excepciones de subprocesos no manejados en ASP.NET?

¿Cómo se supone que una aplicación ASP.NET trata con las excepciones no controladas que se producen en un subproceso en segundo plano sin solicitud (debido a errores)?

De forma predeterminada, estas 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 al mismo tiempo se anulan de forma impredecible. 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).

losAppDomain.UnhandledException El evento permite observar que se ha producido una excepción, pero la terminación no se puede evitar en ese momento.

Aquí hay una repro que necesita ser pegada en un codigo de página ASPX.

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 nunca permitir que una excepción "escape" no sea manejada. ¿Hay alguna otra solución más global y completa para esto?

Respuestas a la pregunta(3)

Su respuesta a la pregunta