Я начну с, да, мы создали и используем фильтр исключения, наследующий от ExceptionFilterAttribute. Он зарегистрирован в конфигурации при запуске приложения сразу после нашего фильтра идентификации и работает в значительной степени, как ожидалось, если ошибка происходит где-то внутри нашего API.
Как говорится, я ищу способ обработки ошибок, которые происходят до того, как он достигнет API.
Рассуждение: Мы никогда не хотим возвращать ошибку YSOD и/или IIS HTML. Мы ВСЕГДА хотим попасть в специальный фильтр/обработчик исключений, чтобы мы могли корректно обрабатывать протоколирование и возвращать ответ JSON пользователю.
Как сейчас, используя Fiddler для выполнения запроса, я могу подключиться к процессу w3wp.exe и увидеть запрос, попадающий в метод Application_BeginRequest в global.asax. После этого он просто возвращает ответ 500. Он никогда не ломается в коде с исключением или не ударяет ни о каких из моих точек останова после этого. Кажется, он возвращает ошибку IIS. Мы никогда не хотим, чтобы это произошло. Нам нужна способность поймать все эти "низкоуровневые" исключения, зарегистрировать их и вернуть что-то значимое для пользователя.
Есть ли что-то, что мы можем сделать для обработки ошибок раньше, что, кажется, попадает в код ASP.NET MVC Web API?