ajax json太大,解决.NETMVC(ajax)Json请求太大,无法反序列化(The JSON request was too large to be deserialized)问题...

遇到这个问题时候感觉挺奇怪,感觉数据并没有几十上百MB的级别,怎么就报Json请求太大了。但是无论如何,遇到了就尝试解决。

查到的最多的解决方案是:

1、修改Web.config文件配置节system.web下httpRuntime maxRequestLength

1

2

意料中的无效,因为我站点原本配置中的最大请求长度就是2147483647。这个配置的单位可是千字节(KB)(参见),也就是可以接受的最大请求长度为2TB!!!更加懵逼了,我的请求充其量也就MB的单位,怎么就超长了?!?!

接着查询到的另一个解决方案是:

2、修改appSetting配置aspnet:MaxJsonDeserializerMembers

官方说明中该配置项的默认配置是1000,感觉找到点了!修改配置项如下,果然搞定了!

1

还是很疑惑,为什么要在两个地方配置可接受的最大请求长度。

关于aspnet:MaxJsonDeserializerMembers的解释,参考微软官方文档 asp.NET appSettings Element,和官方关于HttpRuntimeSection.MaxRequestLength属性的解释,以及JavaScriptSerializer文档。

我的理解是:

HttpRuntimeSection.MaxRequestLength属性对各种形式的输入流(文件流、json等)作一个统一的最大值限定;

aspnet:MaxJsonDeserializerMembers配置在上述属性的基础上对Json形式的请求做了进一步的限制,更小的默认配置帮助开发人员简化请求数据以保证更高的响应速度

官方所述将aspnet:MaxJsonDeserializerMembers设置为太大的数字可能会带来安全风险(Setting this attribute to too large a number can pose a security risk.),但是并没有指明到底是什么样的安全风险。

————————————————

版权声明:本文为CSDN博主「iTheoChan」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/iTheoChan/article/details/103068111

备注:亲测前台向后台传递json对象的最大数量限制是2M

即使value在增加10倍,也是2M限制

原文:https://www.cnblogs.com/liuslayer/p/12483776.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值