ho implementato il filtro di eccezione come qui: http://www.asp.net/web-api/overview/web-api-routing-and-actions/exception-handling e registrato a livello globale, come Microsoft o StackOverflow-utenti (How to add global ASP.Net Web Api Filters?) ha spiegato.Web API: Filtro 'globale' non funziona (ExceptionFilter)
public static void RegisterWebApiFilters(System.Web.Http.Filters.GlobalFilterCollection filters)
{
//other filters
filters.Add(new MyExceptionFilter());
}
Ma se lancio un'eccezione, il mio metodo non viene chiamato. Il metodo di gestione delle eccezioni viene chiamato solo se aggiungo l'attributo [MyExceptionFilter] al metodo controller, ma spero di poterlo evitare per tutti i metodi registrando il filtro globalmente.
Ho provato a impostare un ordine per i filtri, ma questo non ha avuto alcun effetto.
Edit: Ho notato, che nella nuova Wep Api RC il metodo si chiama "RegisterGlobalFilters" e questo sembra essere la raccolta del filtro MVC.
Se chiamo
GlobalConfiguration.Configuration.Filters.Add(new MyExceptionFilter());
funziona. Questa è la collezione per il Web Api.
Sembra che devo costruire la mia classe "FilterConfig" per il Web API ...
Grazie, mi ha segnalato nella giusta direzione. Un po 'sciocco tutte queste raccolte di filtri globali ... ..e ancora il mio filtro delle eccezioni registrato per i normali controller non funziona. Grr. –
sì, ho questa linea ma in alcuni casi non funziona ancora ... posso dire che è inizializzata nel debugger, ma non è attivata ad ogni eccezione nel mio web API –
In WebAPIv2 [this] (http://stackoverflow.com)/a/26677989/2944723) ha funzionato per me – tgarcia