我的页面上的表单有点太大了.它收集每月测量数据.请看样品:
{ "Year":2013,"Month":3,"Records":[ {"Id":0,"Date":"3/1/2013","RiverSection":5,"UserNumber":56},{"Id":0,"RiverSection":7,"UserNumber":200},"RiverSection":8,"UserNumber":556},"Date":"3/2/2013",... ... {"Id":0,"Date":"3/31/2013","UserNumber":200} }
所以我把大数据发布到APIController.
我的本地机器使用Visual Studio调试器服务器工作正常.但是,当我将代码上传到服务器(IIS 6)后.它给出500内部服务器错误.
我尝试过发布一些示例数据并检查了json的字符串长度.
在一个样本数据集中,我的json的长度是5743,我获得了“成功”.但是如果json的大小上升到17345,那么我有一个500内部服务器错误.
在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.config中的appSettings下面添加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