Wie fange ich alle nicht behandelten Ausnahmen ab, die in ASP.NET Web Api auftreten, damit ich sie protokollieren kann?
Bisher habe ich versucht:
- Erstellen und registrieren Sie eine
ExceptionHandlingAttribute - Implementieren Sie eine
Application_ErrorMethode inGlobal.asax.cs - Etwas abonnieren
AppDomain.CurrentDomain.UnhandledException - Etwas abonnieren
TaskScheduler.UnobservedTaskException
Der behandelt ExceptionHandlingAttributeerfolgreich Ausnahmen, die in Controller-Aktionsmethoden und Aktionsfiltern ausgelöst werden, andere Ausnahmen werden jedoch nicht behandelt, z. B.:
- Ausnahmen, die ausgelöst werden, wenn eine
IQueryablevon einer Aktionsmethode zurückgegebene Methode nicht ausgeführt werden kann - Ausnahmen, die von einem Nachrichtenhandler ausgelöst werden (dh
HttpConfiguration.MessageHandlers) - Ausnahmen beim Erstellen einer Controller-Instanz
Wenn eine Ausnahme dazu führen soll, dass ein 500 Internal Server Error an den Client zurückgegeben wird, möchte ich, dass er protokolliert wird. Die Implementierung Application_Errorhat diesen Job in Web Forms und MVC gut gemacht - was kann ich in Web Api verwenden?