W jaki sposób aplikacja ASP.NET ma radzić sobie z nieobsługiwanymi wyjątkami występującymi na wątku w tle niezwiązanym z żądaniem (z powodu błędów)?Jak traktować nieobsługiwane wyjątki wątków w środowisku ASP.NET?
Domyślnie takie wyjątki spowodować przerwanie procesu. Jest to niedopuszczalne w ustawieniach procesu roboczego ASP.NET, ponieważ jednocześnie uruchomione żądania są przerywane nieprzewidywalnie. Jest to także problem z wydajnością.
wyjątków wątku żądanie nie są problemem, ponieważ obsługuje je ASP.NET (pokazując stronę błędu).
Zdarzenie AppDomain.UnhandledException
pozwala stwierdzić, że wyjątek nastąpiło, ale rozwiązanie nie można uniknąć w tym punkcie.
Oto repro który musi zostać wklejony stronę kodzie 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();
}
Jedynym rozwiązaniem Znam to, aby nigdy nie pozwolić wyjątek „uciec” nieobsługiwany. Czy istnieje inne, bardziej globalne i dokładne rozwiązanie tego problemu?
mam przeżywa ten sam problem ... nigdy jej dziwne jak zespół asp.net uważany za rozwiązanie tego.Mam trzeci moduł http, który w pewnym momencie przestaje działać i generuje wyjątki, które powodują, że proces roboczy wyświetla "Service Unavailable" !!! –