0

我有一个数据输入屏幕,我们在其中输入促销交易记录。在我的开发笔记本电脑上,页面按预期运行,没有问题。

但是,在我们的生产环境中,当我的页面有很多记录时,行为会有所不同。如果我向我的 MVC 操作发布 50 条记录(每条记录由大约几十个表单输入组成),我看到实际上只有 42 条记录是模型绑定的,而第 42 条记录缺少数据。

在远程调试此操作时,我进入this.Request.Form.Count即时窗口并得到 1000 作为响应。这个数字对我来说有点太圆了。果然,如果我查询this.Request.Form[999],该值对应第42条记录的一条数据。

当我将 1000 多个表单域发布到我的生产网站时,我会丢失任何超过 1000 个的表单域。

我的生产环境是Windows 2003,IIS 5.0。IIS 或我的 web.config 中是否有一些设置可以应用来提高此限制?正如我所说,当我使用 Visual Studio 运行我的网站时,我没有任何问题。

4

1 回答 1

1

请参阅此知识库文章,了解为什么这是必要的解决方法:http: //support.microsoft.com/kb/2661403

<appSettings>
    <add key="aspnet:MaxHttpCollectionKeys" value="<LargerInt>" />
</appSettings>

如果你使用 JSON,你还需要注意这个值:

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

正如知识库文章和相关安全公告中所述,这两种情况都会引发拒绝服务的安全漏洞。

于 2013-09-26T17:10:44.590 回答