asp.net-core-webapi - .NET Core 2.2 与 5.0 IActionResult“未找到”序列化
问题描述
在 .NET Core 2.2 中,在 WebAPI 控制器中返回 NotFound(),如下所示:
[HttpGet]
public IActionResult DoSomething() {
return NotFound(new IOException("Unable to locate specified resource."));
}
将在响应正文中使用带有 JSON 的 404 状态代码进行响应,如下所示:
{
"ClassName":"System.Exception",
"Message":"Unable to locate specified resource.",
"Data":null,
"InnerException":null,
"HelpURL":null,
"StackTraceString":"Huge stack trace goes here...",
"RemoteStackTraceString":null,
"RemoteStackIndex":0,
"ExceptionMethod":null,
"HResult":-2146233088,
"Source":"Namespace goes here...",
"WatsonBuckets":null
}
但是在 .NET Core 5.0 中,完全相同的代码会生成以下 JSON:
{
"TargetSite":null,
"StackTrace":null,
"Message":"Unable to locate specified resource.",
"Data":{
},
"InnerException":null,
"HelpLink":null,
"Source":null,
"HResult":-2146232800
}
现在显然 ObjectResult 的 JSON 序列化在版本之间发生了变化,但是没有抛出真正的异常并使用单独的错误处理程序手动序列化它,有没有办法配置序列化,因此 NotFound() (或任何其他 ObjectResult )将像以前一样返回完整的异常对象?
解决方案
推荐阅读
- node.js - 使用异步等待从 csv 文件创建或更新行,创建多行而不是更新
- html - 使body宽度对应于div的存在
- reactjs - React 中的状态是什么?
- android - 当表达式不适用于 onCreateDrawableState 中的枚举类时 - android、kotlin
- javascript - 在快速车把中配置文件扩展名
- css - 如何在 React 中创建平滑的背景图像过渡?
- javascript - 无法将表单数据发布到 API
- c++ - 如何将此等式转换为 C++
- swift - 合并图像和文本在swift 4中创建另一个图像
- c# - Mvc 音乐商店的更新版本或 VS2017 AspNet Core 2 的类似版本