jquery - 如何增加 ASP.NET WebAPI Post 调用的 json 大小限制?

标签 jquery json asp.net-web-api json.net

我在页面上的表单有点太大了。它收集每月的测量数据。请看一下示例:

{
"Year":2013,
"Month":3,
"Records":[
    {"Id":0,"Date":"3/1/2013","RiverSection":5,"UserNumber":56},
    {"Id":0,"Date":"3/1/2013","RiverSection":7,"UserNumber":200},
    {"Id":0,"Date":"3/1/2013","RiverSection":8,"UserNumber":556},
    {"Id":0,"Date":"3/2/2013","RiverSection":5,"UserNumber":56},
    {"Id":0,"Date":"3/2/2013","RiverSection":7,"UserNumber":200},
    ...
    ...
    {"Id":0,"Date":"3/31/2013","RiverSection":7,"UserNumber":200}
}

所以我将大数据发布到 APIController。

我使用 Visual Studio 调试器服务器在本地计算机上运行良好。但是当我将代码上传到服务器(IIS 6)后。它给出了500内部服务器错误

我尝试发布一些示例数据并检查字符串化 json 的长度。

在一个示例数据集中,我的json长度是5743,我得到了“成功”。但如果 json 大小达到 17345,我会收到 500 内部服务器错误

所以我尝试增加json的限制。基于this post

Web.Config中:

<system.web.extensions>
<scripting>
  <webServices>
    <jsonSerialization maxJsonLength="5000000">
    </jsonSerialization>
  </webServices>
</scripting>
</system.web.extensions>

但是它不起作用。

还有另一个答案,使用:

var serializer = new JavaScriptSerializer();
serializer.MaxJsonLength = Int32.MaxValue;

但是我们应该把这段代码放在哪里呢?在 Global.asax 中?

请注意,我使用的是 IIS 6。这有问题吗?如何正确增加 json 大小的限制,以便我的数据能够命中 WebApi 操作?

感谢您的帮助。

最佳答案

尝试在 web.configappSettings 下添加 aspnet:MaxJsonDeserializerMembers

<add key="aspnet:MaxJsonDeserializerMembers" value="20000"/>

来源: An ASP.NET request that has lots of form keys, files, or JSON payload members fails with an exception

关于jquery - 如何增加 ASP.NET WebAPI Post 调用的 json 大小限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18260804/

相关文章:

javascript - 过滤搜索 <ul>

JSON 的 Javascript 表单序列化

c# - MVC 到 WebApi : Can a header be compressed?

android - Creative SDK 和 Aviary SDK 有什么区别?

javascript - 在动态创建的对象上加载 jquery 行为

jquery - 根据单击的 anchor 链接更改 URL

python - 将 .txt 文件拆分为多个元素

c# - WCF 返回包含派生类的基类对象列表

jquery - JSTree与IE(7/8) : all non-leaf nodes open after tree loading

c# - FromUri 似乎无法使用 Web API