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 (How to add global ASP.Net Web Api Filters?) explicados.Web API: el filtro 'Global' no funciona (ExceptionFilter)
public static void RegisterWebApiFilters(System.Web.Http.Filters.GlobalFilterCollection filters)
{
//other filters
filters.Add(new MyExceptionFilter());
}
Pero si lanzo una excepción, no se llama a mi método. Se llama a mi método de manejo de excepciones solo si agrego el atributo [MyExceptionFilter] al método del controlador, 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, que en el nuevo WEP Api RC el método se llama "RegisterGlobalFilters" y esto parece ser la recolección de los filtros MVC.
Si llamo
GlobalConfiguration.Configuration.Filters.Add(new MyExceptionFilter());
funciona. Esta es la colección para la API web.
Parece que tengo que construir mi propia clase "FilterConfig" para la Web API ...
Gracias, me señaló en la dirección correcta. Un poco de todas estas colecciones de filtros globales ... y aún mi filtro de excepción registrado para controladores normales no funciona. Grr. –
sí, tengo esa línea, pero todavía no está activando en algunos casos ... puedo decir que se inicializó en el depurador, pero no se activó en todas las excepciones en mi API web –
en WebAPIv2 [this] (http://stackoverflow.com/a/26677989/2944723) funcionó para mí – tgarcia