WebAPI/REST ermöglicht das Senden benutzerdefinierter Fehlermeldungen zusammen mit einem Standardstatuscode, d. H. 402 - Nicht gefunden + Ihre eigene Nachricht in der Kopfzeile/im Text.Benutzerdefinierte Fehler zurückgeben WebApi ASP.NET 5 HttpResponseException falscher Statuscode
Das funktioniert gut auf ASP.NET 4.X, aber mit ASP.NET 5 RC 1 ist etwas nicht in Ordnung.
Während mein Code benutzerdefinierte Fehler zu werfen etwas wie folgt aussieht:
throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Ambiguous)
{
Content = feedback, ReasonPhrase = reason }
);
Der Code (zu Angular) zurückgegeben wird, ist nicht der Code angegeben (300 in diesem Beispiel). Auf localhost/IIS Express bekomme ich 500 Internal Server Error
und in der Produktion auf Azure bekomme ich 404 Not Found
.
an den ASP.NET docs Suche ich etwas sehe, die relevant sein könnten:
Wenn der Server eine Ausnahme abfängt, bevor die Header es einen 500 Internal Server Error Antwort ohne Körper gesendet wurden sendet .
https://docs.asp.net/en/latest/fundamentals/error-handling.html#server-exception-handling
So hat jemand erfolgreich zurückgegeben Statuscodes mit benutzerdefinierten (Körper) Nachrichten an Client von ASP.NET 5 RC 1 WebAPI?
UPDATE:
Diese Methode scheint besser zu funktionieren - aber das nicht beantworten, warum HttpResponseException
funktioniert nicht.
this.Response.StatusCode = (int)HttpStatusCode.BadRequest;
return this.HttpBadRequest(new { ex.Message });
Danke, das erklärt es. Die Dokumentation fehlt sehr –