18

我有一个发布相当大数据的表格,我收到了这个错误

[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。将此键设置为最大值有什么问题吗?

4

1 回答 1

10

你可以在 GitHub 上的aspnetwebstack 源码中看到 MaxHttpCollectionKeys 的实现。

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

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

MSDN 页面建议不要将 MaxHttpCollectionKeys 设置为太大的值,因为这会带来安全风险。 在此处输入图像描述

于 2015-08-05T20:29:47.797 回答