2016-05-12 26 views
1

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 }); 

答えて

0

あなたの更新の質問に答えるために、それは、フロー制御のための例外を使用しての悪い習慣を奨励しているため、彼らはHttpResponseExceptionの使用を削除しました。 https://github.com/aspnet/Mvc/issues/4311を参照してください。

+0

ありがとう、それはそれを説明します。ドキュメントがひどく欠けている –

関連する問題