In che modo un'applicazione ASP.NET deve gestire eccezioni non gestite che si verificano in un thread in background non richiesto (a causa di bug)?Come trattare le eccezioni thread non gestite in ASP.NET?
Per impostazione predefinita, tali eccezioni causare il processo per terminare. Questo è inaccettabile nell'impostazione di un processo di lavoro ASP.NET perché le richieste in esecuzione simultanee vengono interrotte in modo imprevedibile. È anche un problema di prestazioni.
eccezioni su un thread di richiesta non sono un problema perché ASP.NET li gestisce (mostrando una pagina di errore).
L'evento AppDomain.UnhandledException
consente di osservare che si è verificata un'eccezione, ma la chiusura non può essere impedita in quel punto.
Ecco una replica che deve essere incollata in una pagina ASPX codebehind.
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();
}
L'unica soluzione che conosco è non lasciare mai che un'eccezione "sfugga" non gestita. C'è qualche altra soluzione più globale e completa per questo?
Sto vivendo lo stesso problema ... è strano come il team di asp.net non abbia mai considerato una soluzione a questo problema.Ho un modulo http di terza parte che non riesce ad un certo punto e genera eccezioni che fanno sì che il processo di lavoro visualizzi "Servizio non disponibile" !!! –