WebAPI/RESTでは、カスタムエラーメッセージを標準ステータスコード(402 - Not found +ヘッダー/本文内の独自のメッセージ)とともに送信できます。カスタムエラーを返すWebApi ASP.NET 5 HttpResponseException間違ったステータスコード
これはASP.NET 4.Xではうまくいきますが、ASP.NET 5 RC 1では面白いことがあります。カスタムエラーをスローするように私のコードは次のようなものに見えますが
:
throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Ambiguous)
{
Content = feedback, ReasonPhrase = reason }
);
コードが返された(角には)指定されたコード(例では300)ではありません。 localhost/IIS Expressで私は500 Internal Server Error
を取得し、Azureでのプロダクションでは404 Not Found
を取得します。ヘッダが送信されている前 それは本文なしで500内部サーバーエラー応答を送信するサーバーは、例外をキャッチした場合
:私は、関連するかもしれない何かを参照してくださいASP.NETのドキュメントを見てみると
。 ASP.NET 5 RC 1つのWebAPIのからクライアントへのカスタム(ボディ)メッセージで
https://docs.asp.net/en/latest/fundamentals/error-handling.html#server-exception-handling
だから、誰もが正常に戻ってきたステータスコード?
UPDATE:
この方法論は、より良い動作しているようです - しかしHttpResponseException
が動作しない理由は答えていません。
this.Response.StatusCode = (int)HttpStatusCode.BadRequest;
return this.HttpBadRequest(new { ex.Message });
ありがとう、それはそれを説明します。ドキュメントがひどく欠けている –