ASP.NET/Mono MVC4 Web API v.1 Anwendung.Undefinierte API-Methodenaufrufe in ASP.NET MVC4-Web-API fangen
So fangen Sie Aufrufe von undefinierten API-Methoden ab. Aufruf http://localhost:52216/erp/api/undefinedmethod
kehrt Fehler Browser:
<Error>
<Message>
No HTTP resource was found that matches the request URI 'http:// localhost:52216/erp/api/undefinedmethod'.
</Message>
<MessageDetail>
No type was found that matches the controller named 'undefinedmethod'.
</MessageDetail>
</Error>
Wie für die Anmeldung zur Datenbank diesen Fehler fangen? Ich habe versucht, Code aus Frage
How do I log ALL exceptions globally for a C# MVC4 WebAPI app?
aber Application_Error und Ausnahmefiltercode ausgeführt wird immer noch nicht, Fehler zu Browser zurückgegeben. Wie wird dieser Fehler angezeigt?
Wenn url ist ohne api wie
'http://localhost:52216/erp/undefinedmethod'
Application_Error ordnungsgemäß ausgeführt.
WebAPI Konfiguration von VS2013 WebAPI Projektvorlage verwendet wird:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
aktualisieren
ich veränderte Antwort versucht. API-Controller verwenden die Forms-Autorisierung und sind mit dem Standardattribut [Authorize] versehen. Wenn die Autorisierung fehlschlägt, Standard xml api Fehlermeldung
<Error>
<Message>Authorization has been denied for this request.</Message>
</Error>
auftritt. Wie bekomme ich diesen Fehler auch?
Ich schätze, Sie erhalten ein HTTP 404 beim Aufruf dieser URL. Sie könnten eine benutzerdefinierte Fehlerseite für HTTP 404 erstellen und den Fehler in der Standardaktion des jeweiligen Controllers protokollieren. – Carsten
API-Methoden und andere Controller können auch 404 Ergebnisseiten zurückgeben. Sie stellen json Inhalt auf diesen Seiten zur Verfügung, die 404 Fehler erklären, der an Anrufer genau in dieser Form übergeben wurde. Das sind geschäftliche Fehler, die nicht protokolliert werden sollten. Das Erstellen der globalen 404-Fehlerseite deaktiviert diese Methodenergebnisse. – Andrus