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 обработчик для отправки сообщений об ошибках, чтобы разработчики нашей команды могли легче отлаживать наше приложение?

Ответы на вопрос(1)

Ваш ответ на вопрос