如何从ASP.NET 5 Web Api返回HTTP 500

本文关键字:Api 返回 HTTP Web ASP NET | 更新日期: 2023-09-27 18:26:18

控制器现在有函数CreatedAtRoute()用于201,HttpBadRequest()用于400等。我没有看到一个用于500的函数,我认为它是HttpInternalServerError()

然而,我可以创建并返回HttpStatusCodeResult类:

[HttpPost]
public IActionResult Post([FromBody]string something)
{    
   ...
    try{
    }
    catch(Exception e)
    {
         return new HttpStatusCodeResult((int)HttpStatusCode.InternalServerError);
    }
}

但我想从e返回一些信息。对于live来说,这可能是一种糟糕的做法,但当我们进行测试时,我们希望看到API调用的返回主体中的错误。

HttpStatusCodeResult不具有object类型的属性或任何用于提供元数据的属性。

该怎么办?我不想返回400,因为这不是内部服务器错误的含义。

如何从ASP.NET 5 Web Api返回HTTP 500

return ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Message describing the error here"));

return InternalServerError(new Exception("SOME CUSTOM MESSAGE"));