Jak złapać wszystko nieobsłużone wyjątki występujące w ASP.NET Web Api, aby móc je rejestrować?
Do tej pory próbowałem:
- Utwórz i zarejestruj
ExceptionHandlingAttribute - Zaimplementuj
Application_Errormetodę w programieGlobal.asax.cs - Subskrybuj
AppDomain.CurrentDomain.UnhandledException - Subskrybuj
TaskScheduler.UnobservedTaskException
ExceptionHandlingAttributePowodzeniem obsługuje wyjątków, które są generowane wewnątrz metod działania kontrolera i filtrów działania, ale inne wyjątki nie są obsługiwane, na przykład:
- Wyjątki zgłaszane, gdy wykonanie
IQueryablezwrócone przez metodę akcji nie powiedzie się - Wyjątki zgłoszone przez program obsługi komunikatów (tj.
HttpConfiguration.MessageHandlers) - Wyjątki zgłaszane podczas tworzenia instancji kontrolera
Zasadniczo, jeśli wyjątek spowoduje zwrócenie do klienta wewnętrznego błędu serwera 500, chcę, aby był on rejestrowany. Wdrożenie Application_Errorwykonało tę pracę dobrze w formularzach sieci Web i MVC - czego mogę używać w interfejsie Web Api?