Як я можу зафіксувати всі необроблені винятки, які трапляються в ASP.NET Web Api, щоб я міг їх увійти?
Поки я намагався:
- Створіть та зареєструйте
ExceptionHandlingAttribute - Впровадити
Application_Errorметод вGlobal.asax.cs - Підписатися на
AppDomain.CurrentDomain.UnhandledException - Підписатися на
TaskScheduler.UnobservedTaskException
ExceptionHandlingAttributeУспішно обробляє виключення , які викидаються в методах дій контролера і фільтрів дій, але і інші винятки не обробляються, наприклад:
- Винятки, викинуті, коли
IQueryableповернення методом дії не вдається виконати - Винятки, кинуті обробником повідомлень (тобто
HttpConfiguration.MessageHandlers) - Винятки, закинуті під час створення екземпляра контролера
В основному, якщо виняток призведе до повернення клієнту 500 внутрішніх помилок сервера, я хочу, щоб він був зареєстрований. Виконавши Application_Errorцю роботу добре в веб-формах та MVC - що я можу використовувати в Web Api?