我有一个数据输入屏幕,我们在其中输入促销优惠的记录。在我的开发笔记本电脑上,页面按预期运行而没有问题。
但是,在我们的生产环境中,当我的页面有很多记录时,行为会有所不同。如果我发布50条记录 - 每条记录包含大约几十个表单输入 - 到我的MVC操作,我看到只有42条记录实际上是模型绑定的,而第42条记录缺少数据。
在远程调试此操作时,我将this.Request.Form.Count
输入到即时窗口,我得到1000作为响应。这个数字对我来说有点太圆了。果然,如果我询问this.Request.Form[999]
,该值对应于第42条记录的一段数据。
当我向我的制作网站发布超过1000个表单字段时,我将失去任何超过1000的表单字段。
我的生产环境是Windows 2003,IIS 5.0。在IIS或我的web.config中是否有一些设置我可以申请提高此限制?正如我所说,当我使用Visual Studio运行我的网站时,我没有问题。
答案 0 :(得分:1)
有关为何需要解决方法的信息,请参阅此知识库文章:http://support.microsoft.com/kb/2661403
<appSettings>
<add key="aspnet:MaxHttpCollectionKeys" value="<LargerInt>" />
</appSettings>
如果你正在使用JSON,你还需要注意这个值:
<add key="aspnet:MaxJsonDeserializerMembers" value="<AnotherLargerInt>"/>
这些都会引发安全漏洞,导致拒绝服务,如知识库文章和相关安全公告中所述。