此 Web API 操作返回 HTTP 500(内部服务器错误)状态代码:
public IHttpActionResult Post()
{
return InternalServerError();
}
但此操作会返回 HTTP 400(错误请求)状态代码:
public IHttpActionResult Post()
{
return InternalServerError(new Exception());
}
我希望两个操作都返回 500 状态代码,第二个操作将一些错误的详细信息放在响应正文中。
我的第一个想法是这是一个错误,但我想获得一些其他输入。为什么应该在第二个操作中返回 400 而不是 500 有什么好的理由吗?
更新:
关于此方法的文档如下:
Creates an System.Web.Http.Results.ExceptionResult (500 Internal Server Error) with the specified exception.
我越来越觉得这是一个错误。
最佳答案
是的,这是一个已知问题,已在 Web API 2 发布后修复...您可以使用以下解决方法来解决此问题...示例:
return new ResponseMessageResult(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, invalidOpException));
以下是之前记录的问题:
https://aspnetwebstack.codeplex.com/workitem/1318
关于asp.net - Web API 2 - ApiController.InternalServerError() 返回 HTTP 400 状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20103344/