如何增加 ASP.NET Core webapp 中的 JSON 反序列化 MaxDepth 限制

ElF*_*Fik 6 c# json.net asp.net-core asp.net-core-2.1

我们使用 ASP.NET Core 2.1 和 .NET Framework 4.6.2。

我们有一个客户需要向我们的 web 应用程序发送一个相当大的嵌套 json 结构。

当他们进行此调用时,我们将输出以下日志并返回错误:

读取器的 MaxDepth 已超过 32。路径“ super.long.path.to 属性”,第 1 行,位置 42111。”

我浏览了 ASP.NET Core 代码库,并MaxDepth = 32在框架提供的反序列化器中观察到了一些引用。

是否可以将其配置为不同的深度?

Bri*_*ers 11

我没有测试过这个,但在 Startup.cs 中你应该能够做这样的事情:

services.AddMvc().AddJsonOptions(options => {
    options.SerializerSettings.MaxDepth = 64;  // or however deep you need
});
Run Code Online (Sandbox Code Playgroud)