Я реализовал фильтр исключений, как здесь: http://www.asp.net/web-api/overview/web-api-routing-and-actions/exception-handling И зарегистрировали его по всему миру, например, как microsoft или stackoverflow-users (Как добавить глобальные фильтры ASP.Net Web Api?).
public static void RegisterWebApiFilters(System.Web.Http.Filters.GlobalFilterCollection filters)
{
//other filters
filters.Add(new MyExceptionFilter());
}
Но если я выдаю исключение, мой метод не вызывается. Мой метод обработки исключений вызывается только в том случае, если я добавляю атрибут [MyExceptionFilter] к методу контроллера, но я надеялся, что могу избежать этого для всех методов, зарегистрировав фильтр по всему миру.
Я попытался установить порядок для фильтров, но это не повлияло.
Изменить: Я заметил, что в новом Wep Api RC метод называется "RegisterGlobalFilters", и это, кажется, коллекция фильтров MVC.
Если я вызываю
GlobalConfiguration.Configuration.Filters.Add(new MyExceptionFilter());
он работает. Это коллекция для Web Api.
Похоже, мне нужно создать собственный класс FilterConfig для веб-api...