Asp.net

Web API 2 - ApiController.InternalServerError() 返回 HTTP 400 狀態碼

  • November 20, 2013

此 Web API 操作返回 HTTP 500(內部伺服器錯誤)狀態程式碼:

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

但此操作返回 HTTP 400(錯誤請求)狀態程式碼:

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

我希望這兩個操作都返回 500 狀態程式碼,第二個操作將一些錯誤的詳細資訊放在響應正文中。

我的第一個想法是這是一個錯誤,但我想獲得一些其他輸入。有什麼好的理由為什麼應該在第二個動作中返回 400 而不是 500?

更新:

此方法的文件內容如下:

創建具有指定異常的 System.Web.Http.Results.ExceptionResult(500 內部伺服器錯誤)。

我越來越認為這是一個錯誤。

是的,這是在 Web API 2 發布後修復的已知問題…您可以使用以下解決方法來解決此問題..範例:

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

以下是之前記錄的問題:

https ://aspnetwebstack.codeplex.com/workitem/1318

引用自:https://stackoverflow.com/questions/20103344