如何在ASP.NET Core Web应用程序中增加JSON反序列化MaxDepth限制 - c#

我们正在将ASP.NET Core 2.1与.NET Framework 4.6.2结合使用。

我们有一个客户需要向我们的Web应用程序发送一个很大程度上嵌套的json结构。

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

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

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

是否可以将其配置为其他深度?

参考方案

我没有测试过,但是在Startup.cs中,您应该可以执行以下操作:

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

如何在ASP.NET Page_Load事件中识别RadButton启动回发的原因? - c#

在我的ASP.NET页的Page_Load中,我试图确定某个按钮是否已单击并尝试回发:if (Page.IsPostBack) { if (Request.Params.Get("__EVENTARGUMENT") == "doStuff") doSomething(); } doStuff是标记内的JavaScrip…

调用SignalR Hub不适用于Asp.Net Core Web API - c#

我是SignalR的新手。我正在尝试设置一个Asp.Net Core WebAPI,以便其他客户端可以使用SignalR连接到它并获取实时数据。我的Hub类是:public class TimeHub : Hub { public async Task UpdateTime(string message) { await Clients.All.SendAs…

如何将POCO类传递给.NET Core配置 - c#

我正在进行.NET Core应用程序的集成测试,并且想要使用一些测试配置。我的配置是一个POCO类,该类通过appsettings.json配置,然后通过IOptions<T>使用。在我的测试中,我想使用该类的实例。这是代码: var mySettings = GetTestSettings(); // factory method return…

asp.net使用客户端验证而不发布到服务器 - c#

我有一个很长的表格,分为几个部分。我想利用内置的ASP.NET验证控件而不在提交表单之前将其回发到服务器。为了提供更多的上下文,让我解释一下我的想法。该表格分为几部分,每个部分都有一个“下一步”按钮。单击“下一步”按钮时,将使用ASP.NET包含的客户端代码来验证该部分。如果该部分有效,则jquery方法将隐藏该部分并显示下一个。当用户到达表单的最后部分时,…

如何在.net core中调用带参数的动作? - c#

因此,我在Startup.cs中设置了以下默认模式:app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller}/{action}/{id?}"); }); 这是我的控制器…