Como posso capturar todas as exceções não tratadas que ocorrem no ASP.NET Web Api para que eu possa registrá-las?
Até agora tentei:
- Crie e registre um
ExceptionHandlingAttribute - Implementar um
Application_Errormétodo emGlobal.asax.cs - Inscrever-se para
AppDomain.CurrentDomain.UnhandledException - Inscrever-se para
TaskScheduler.UnobservedTaskException
O ExceptionHandlingAttributetrata com sucesso as exceções que são lançadas nos métodos de ação do controlador e filtros de ação, mas outras exceções não são tratadas, por exemplo:
- Exceções lançadas quando um
IQueryablemétodo retornado por um método de ação falha na execução - Exceções lançadas por um gerenciador de mensagens (ou seja
HttpConfiguration.MessageHandlers) - Exceções lançadas ao criar uma instância de controlador
Basicamente, se uma exceção for fazer com que um 500 Erro Interno do Servidor seja retornado ao cliente, quero que seja registrado. A implementação Application_Errorfez bem este trabalho em Web Forms e MVC - o que posso usar na API Web?