Zaimplementowałem filtr wyjątków, taki jak tutaj: http://www.asp.net/web-api/overview/web-api-routing-and-actions/exception-handling I zarejestrowałem go globalnie, podobnie jak użytkownicy microsoft lub stackoverflow-users (How to add global ASP.Net Web Api Filters?).Web API: Filtr "globalny" nie działa (ExceptionFilter)
public static void RegisterWebApiFilters(System.Web.Http.Filters.GlobalFilterCollection filters)
{
//other filters
filters.Add(new MyExceptionFilter());
}
Ale jeśli zgłoszę wyjątek, moja metoda nie jest wywoływana. Moja metoda obsługi wyjątków jest wywoływana tylko wtedy, gdy dodaję atrybut [MyExceptionFilter] do metody kontrolera, ale miałem nadzieję, że uda mi się tego uniknąć dla wszystkich metod, rejestrując filtr globalnie.
Próbowałem ustawić kolejność filtrów, ale nie przyniosło to żadnego efektu.
Edit: Zauważyłem, że w nowym WEP Api RC metoda nazywa się "RegisterGlobalFilters" i to wydaje się być zbieranie filtr MVC.
Jeśli zadzwonię
GlobalConfiguration.Configuration.Filters.Add(new MyExceptionFilter());
to działa. To jest kolekcja dla Web Api.
Wygląda muszę stworzyć własną klasę „FilterConfig” dla API internetowej ...
Dzięki wskazał mnie we właściwym kierunku. Trochę głupie wszystkie te globalne kolekcje filtrów ... ..i nadal mój filtr wyjątków zarejestrowany dla normalnych kontrolerów nie działa. Grr. –
Tak, mam tę linię, ale nadal nie jest uruchamiana w niektórych przypadkach. Mogę powiedzieć, że jest ona zainicjalizowana w debugerze, ale nie jest uruchamiana przy każdym wyjątku w mojej api internetowej –
W WebAPIv2 [this] (http://stackoverflow.com/a/26677989/2944723) pracował dla mnie – tgarcia