Application_Error в global.asax не перехватывает ошибки в WebAPI
Для проекта, над которым я работаю, одна из вещей, которые мы реализуем, - это то, для чего у нас есть код в некоторых из моих команд более старых проектов ASP.NET и MVC -Application_Error
ловушка исключений, которая отправляет электронное письмо команде разработчиков с информацией об исключениях и наиболее важными подробностями.
Вот как это выглядит:
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);
}
Одна «незначительная» проблема - когда умышленно есть часть кода, выдается исключение, чтобы протестировать этот механизм ...
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
}
Интерфейсный JavaScript немедленно перехватывает запрос HTTP 500, но указанный выше код global.asax.cs не достигается (я установил точку останова в первой строке выполнения метода).
Вопрос: Каким образом я могу получить «старый»Application_Error
обработчик для отправки сообщений об ошибках, чтобы разработчики нашей команды могли легче отлаживать наше приложение?