关于ASP.NET中maxJsonLength的问题

时间:2010-09-28 14:05:18

标签: asp.net ajax json


最近,我遇到了我的应用程序的问题:从服务器返回的JSON字符串的大小超过了默认的maxJsonLength。我做了一些研究并实施了一些修复,包括分页的变化。目前一切看起来都很棒。但是,我仍有一些问题没有答案。

首先,大多数消息来源指向本文: http://geekswithblogs.net/frankw/archive/2008/08/05/how-to-configure-maxjsonlength-in-asp.net-ajax-applications.aspx

1.为什么2,097,152(2MB)? 2MB是为网页加载的数据太多。 (除非,用户正在下载某些东西,但这是一个不同的故事)即使1MB也是太多了。

然而,作者继续以500,000的maxJsonLength为例。为什么这个号码?这只是如何设置属性的一个例子吗?一些消息来源表示,500,000是限制。嗯,事实并非如此,因为我用2,097,152(2MB,大约是500,000的4倍)测试了我的应用程序并且它有效。

3.其他一些消息来源称4MB是限制......那么,限制是什么?有限制吗?它是否与服务器响应的限制有关?

4.最后,我想对从服务器接收的JSON字符串长度提出强烈建议。不是应该设置maxJsonLength的数字,而是JSON字符串的实际长度,即“要争取的东西”。

提前谢谢。

2 个答案:

答案 0 :(得分:1)

这里没有严格的规则。您的Json长度将取决于您的应用程序以及您返回给客户端的信息。

如果你真的想要一个“经验法则”,它应该尽可能小,以传达你需要的数据。

对于最大值,真正的限制再次最大程度上取决于浏览器的要求,但我个人永远不会超过2mb的Json消息只是因为它需要发送它。

答案 1 :(得分:1)

我知道总限制是由您提到的maxJsonLength和HttpRuntimeSection.MaxRequestLength中的较小者决定的。我目前正在测试这个,我会回复你。

当然,这里最大的问题是返回如此大量的数据很少是一个好主意。每当我的响应开始超过大约100KB时,我再看看 我的整体设计,并找到在需要时提供较小块的方法。即使这个100KB对于必须的纯数据场景也很高,我指的是文本数据,而不是图像或脚本。