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



页面上的表单有点太大。它收集每月的测量数据。请看一下样品:

{
"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)之后。它给出了一个CCD_ 1。

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

在一个示例数据集中,json的长度是5743,我获得了"成功"。但是如果json的大小增加到17345,我得到了一个500 Internal Server Error

所以我尝试增加json的限制。基于此后

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"/>

来源:具有大量表单键、文件或JSON负载成员的ASP.NET请求失败,并出现异常

相关内容

  • 没有找到相关文章

最新更新