Ich implementiert den Ausnahmefilter wie hier: http://www.asp.net/web-api/overview/web-api-routing-and-actions/exception-handling Und registriert es global, wie Microsoft oder Stackoverflow-Benutzer (How to add global ASP.Net Web Api Filters?) erklärt.Web-API: 'Global' Filter funktioniert nicht (ExceptionFilter)
public static void RegisterWebApiFilters(System.Web.Http.Filters.GlobalFilterCollection filters)
{
//other filters
filters.Add(new MyExceptionFilter());
}
Aber wenn ich eine Ausnahme auslösen, wird meine Methode nicht aufgerufen. Meine Ausnahmebehandlungsmethode wird nur aufgerufen, wenn ich das Attribut [MyExceptionFilter] der Controller-Methode hinzufüge, aber ich hoffte, dass ich das für alle Methoden vermeiden kann, indem ich den Filter global registriere.
Ich habe versucht, eine Reihenfolge für die Filter zu setzen, aber dies hatte keine Wirkung.
Edit: ich bemerkt habe, dass in der neuen Wep Api RC die Methode "RegisterGlobalFilters" genannt wird, und dies scheint die MVC Filtersammlung zu sein.
Wenn ich
GlobalConfiguration.Configuration.Filters.Add(new MyExceptionFilter());
nennen es funktioniert. Dies ist die Sammlung für die Web API.
Sieht aus wie ich habe meine eigene „FilterConfig“ Klasse für den Web-api zu bauen ...
Danke, wies mich in die richtige Richtung. Ein bisschen doof all diese globalen Filter-Sammlungen ... ..und trotzdem funktioniert mein Ausnahme-Filter, der für normale Controller registriert ist, nicht. Gr. –
yeah Ich habe diese Zeile aber es ist immer noch nicht in einigen Fällen feuern .. ich kann sagen, es ist im Debugger initialisiert, aber es wird nicht auf jede Ausnahme in meinem Web-API ausgelöst –
In WebAPIv2 [this] (http://stackoverflow.com/a/26677989/2944723) arbeitete für mich – tgarcia