Як я можу зафіксувати всі необроблені винятки, які трапляються в 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?