Как я могу поймать все необработанные исключения, которые происходят в ASP.NET Web Api, чтобы я мог их зарегистрировать?
До сих пор я пробовал:
- Создайте и зарегистрируйте
ExceptionHandlingAttribute - Внедрить метод
Application_ErrorвGlobal.asax.cs - Подпишитесь на
AppDomain.CurrentDomain.UnhandledException - Подпишитесь на
TaskScheduler.UnobservedTaskException
ExceptionHandlingAttribute успешно обрабатывает исключения, которые генерируются в методах действий контроллера и фильтрах действий, но другие исключения не обрабатываются, например:
- Исключения, возникающие, когда
IQueryable, возвращаемый методом действия, не выполняется - Исключения, отправленные обработчиком сообщений (т.е.
HttpConfiguration.MessageHandlers) - Исключения, создаваемые при создании экземпляра контроллера
В принципе, если исключение приведет к тому, что 500 Internal Server Error будет возвращено клиенту, я хочу, чтобы он был зарегистрирован. Реализация Application_Error хорошо выполняла эту работу в Web Forms и MVC - что я могу использовать в Web Api?