aspnet:MaxHttpCollectionKeys的最大值是多少?

19

我有一个提交比较大数据的表单,但是我收到了这个错误信息

[InvalidOperationException: Operation is not valid due to the current state of the    object.]
   System.Web.HttpValueCollection.ThrowIfMaxHttpCollectionKeysExceeded() +2419334
   System.Web.HttpValueCollection.FillFromEncodedBytes(Byte[] bytes, Encoding encoding) +58
   System.Web.HttpRequest.FillInFormCollection() +159

[HttpException (0x80004005): The URL-encoded form data is not valid.]
   System.Web.HttpRequest.FillInFormCollection() +217
   System.Web.HttpRequest.get_Form() +104
   System.Web.HttpRequest.get_HasForm() +9035903
   System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) +97
   System.Web.UI.Page.DeterminePostBackMode() +69
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +135

为了解决这个问题,我从StackOverflow网站上得到了这个解决方案

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

现在我想知道可以为aspnet:MaxHttpCollectionKeys设置的最大有效值是多少。将此键设置为其最大值是否会有任何问题?

1个回答

12

您可以在GitHub上的aspnetwebstack源代码中查看MaxHttpCollectionKeys的实现。

从实现中看来,这些是限制:

  1. MaxHttpCollectionKeys是一个int类型,所以它的最大值可能是一个整数(int.MaxValue: 2,147,483,647
  2. 最小值为1
  3. 默认值为1000

这个MSDN页面建议不要将MaxHttpCollectionKeys设置为太大的值,因为那会带来安全风险。enter image description here


你好,我有一个页面的同样问题,它有一个非常长的ListView。大约有400行,每行大约有10个控件,而且还在不断增长。我已经将MaxHttpCollectionKeys设置为4000,但仍然无法解决问题。你能建议我设置哪个值吗?谢谢。 - chenny

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接