2013-11-20 5 views
7

ウェブAPI 2 - ApiController.InternalServerError()がHTTP 400ステータスコードを返します。このWeb APIアクションがHTTP 500(内部サーバーエラー)状態コードを返し

public IHttpActionResult Post() 
{ 
    return InternalServerError(); 
} 

をしかし、このアクションはHTTP 400(不正な要求を返します)ステータスコード:

public IHttpActionResult Post() 
{ 
    return InternalServerError(new Exception()); 
} 

私は両方のアクションは、500のステータスコードと2番目のアクションを返すことを期待するには、レスポンスボディ内のエラーの詳細の一部を置きます。

私の最初の考えは、これはバグですが、私は他の入力をしたいと思っていました。 500の代わりに2番目のアクションで400を返す理由がありますか?

UPDATE:この方法で

ドキュメントは読み取ります

は、指定された例外を除いてSystem.Web.Http.Results.ExceptionResult(500内部サーバーエラー)を作成します。

これはバグだと思っています。

+0

はこの1つに関連した問題はありません、あなたは確認するhttp://aspnetwebstack.codeplex.com/workitem/list/basic – Fals

答えて

12

右、これはあなたがこのissue..exampleを修正するために、次の回避策を使用することができます...のWeb API 2リリース後に修正されました既知の問題だった:

return new ResponseMessageResult(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, invalidOpException)); 

後がログに記録された問題でした前:
https://aspnetwebstack.codeplex.com/workitem/1318

+0

クール、おかげで1を開く必要があります。 – jebar8

関連する問題