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_Error
método emGlobal.asax.cs
- Inscrever-se para
AppDomain.CurrentDomain.UnhandledException
- Inscrever-se para
TaskScheduler.UnobservedTaskException
O ExceptionHandlingAttribute
trata 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
IQueryable
mé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_Error
fez bem este trabalho em Web Forms e MVC - o que posso usar na API Web?