exception handling - practice - API web: el filtro ''Global'' no funciona(ExceptionFilter)
web api exception handling best practice (1)
Como mencioné en mi pregunta: hay diferentes colecciones de filtros. Uno para MVC y otro para la API web.
Si desea agregar el filtro a la API web, agregue esta línea de código a global.asax
GlobalConfiguration.Configuration.Filters.Add(new MyExceptionFilter());
Implementé el filtro de excepciones como aquí: http://www.asp.net/web-api/overview/web-api-routing-and-actions/exception-handling Y lo registré globalmente, como microsoft o stackoverflow-users ( Cómo para agregar filtros API globales ASP.Net Web? ) explicado.
public static void RegisterWebApiFilters(System.Web.Http.Filters.GlobalFilterCollection filters)
{
//other filters
filters.Add(new MyExceptionFilter());
}
Pero si lanzo una excepción, mi método no se llama. Se llama a mi método de manejo de excepciones solo si agrego el atributo [MyExceptionFilter] al método controller, pero esperaba poder evitarlo para todos los métodos registrando el filtro globalmente.
Traté de establecer un orden para los filtros, pero esto no tuvo ningún efecto.
Editar: Me he dado cuenta de que en el nuevo Wep Api RC el método se llama "RegisterGlobalFilters" y esta parece ser la colección de filtros MVC.
Si llamo
GlobalConfiguration.Configuration.Filters.Add(new MyExceptionFilter());
funciona. Esta es la colección para la API web.
Parece que tengo que crear mi propia clase "FilterConfig" para la aplicación web ...