Application_Error no global.asax não capturando erros no WebAPI
Para um projeto em que estou trabalhando, uma das coisas que estamos implementando é algo para o qual temos código em algumas de minhas equipes - projetos ASP.NET e MVC mais antigos - umApplication_Error
coletor de exceção que envia um email para a equipe de desenvolvimento com a experiência da exceção e os detalhes mais relevantes.
Veja como fica:
Global.asax:
protected void Application_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
string path = "N/A";
if (sender is HttpApplication)
path = ((HttpApplication) sender).Request.Url.PathAndQuery;
string args = string.Format("<b>Path:</b> {0}", path);
// Custom code that generates an HTML-formatted exception dump
string message = Email.GenerateExceptionMessage(ex, args);
// Custom code that sends an email to the dev team.
Email.SendUnexpectedErrorMessage("Some App", message);
}
Um problema "menor", no entanto - quando intencionalmente uma parte do código gera uma exceção para testar esse mecanismo ...
public static void GetMuffinsByTopping(string topping)
{
throw new Exception("Test Exception!", new Exception("Test Inner Exception!!!"));
// Actual repository code is unreachable while this test code is there
}
O JavaScript front-end está interceptando imediatamente uma solicitação HTTP 500, mas o código global.asax.cs mencionado acima não está sendo alcançado (eu defino um ponto de interrupção na primeira linha de execução do método).
Pergunta, questão: De que maneira posso obter o "antigo"Application_Error
manipulador para enviar e-mails de erro, para que os desenvolvedores da nossa equipe possam depurar mais facilmente nosso aplicativo?