我们可以通过两种方式在 web.config 中设置最大 json 长度:
1:以字节为单位
<configuration>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="500000">
</jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>
</configuration>
Run Code Online (Sandbox Code Playgroud)
2:在应用程序设置中。json 对象中的最大条目(本例为 150,000)
<add key="aspnet:MaxJsonDeserializerMembers" value="150000" />
Run Code Online (Sandbox Code Playgroud)
我想知道,什么时候使用哪个?我总是需要两者吗?这两个人是以某种方式相互合作的吗?
根据定义,这里是有问题的两个设置。
JavaScriptSerializer.MaxJsonLength
获取或设置 JavaScriptSerializer 类接受的 JSON 字符串的最大长度。
aspnet:MaxJsonDeserializerMembers
指定JavaScriptSerializer 类型反序列化的任何字典中可以出现的最大项目数的限制。
也就是说,看看这个答案
MaxJsonLength 属性的值仅适用于异步通信层用于调用 Web 服务方法的内部 JavaScriptSerializer 实例。(MSDN:ScriptingJsonSerializationSection.MaxJsonLength 属性)
以及答主的解读
基本上,当从 Web 方法调用时,“内部” JavaScriptSerializer 尊重 maxJsonLength 的值;直接使用 JavaScriptSerializer(或通过 MVC action-method/Controller 使用)不尊重 maxJsonLength 属性,至少不是来自 web.config 的 systemWebExtensions.scripting.webServices.jsonSerialization 部分。
| 归档时间: |
|
| 查看次数: |
5202 次 |
| 最近记录: |