19

我在 aspx 页面上有 radcombo 框,当我从中选择任何选项时,它会在“/”应用程序中给出错误“服务器错误”。

由于对象的当前状态,操作无效。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.InvalidOperationException:由于对象的当前状态,操作无效。

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

堆栈跟踪:

[InvalidOperationException:由于对象的当前状态,操作无效。]
System.Web.HttpValueCollection.ThrowIfMaxHttpCollectionKeysExceeded() +2692302 System.Web.HttpValueCollection.FillFromEncodedBytes(Byte[] bytes, Encoding encoding) +61
System.Web。 HttpRequest.FillInFormCollection() +148

[HttpException (0x80004005): URL 编码的表单数据无效。] System.Web.HttpRequest.FillInFormCollection() +206
System.Web.HttpRequest.get_Form() +68
System.Web.HttpRequest.get_HasForm() +8735447
System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) +97 System.Web.UI.Page.DeterminePostBackMode() +63 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +133


版本信息:Microsoft .NET Framework 版本:2.0.50727.3634;ASP.NET 版本:2.0.50727.3634 `

4

3 回答 3

54

来自http://codecorner.galanter.net/2012/06/04/solution-for-operation-is-not-valid-due-to-the-current-state-of-the-object-error/

出现问题的原因是 Microsoft 安全更新 MS11-100 在 HTTP POST 请求期间限制了表单集合中的密钥数量。为了缓解这个问题,你需要增加这个数字。

这可以在您的应用程序 Web.Config 部分中完成(如果该部分不存在,则<appSettings> 直接在下面创建该部分)。<configuration>将 2 行类似于以下行添加到该部分:

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

上面的示例将限制设置为 2000 个键。这将解除限制,错误应该消失。

于 2012-06-04T17:47:27.127 回答
12

如果您致电,可能会发生这种情况

 .SingleOrDefault() 

在具有 2 个或更多元素的 IEnumerable 上。

于 2012-10-22T01:57:44.230 回答
0

我知道这个问题的答案已经被接受,但有人在评论中询问是否有可以在 web.config 之外完成的解决方案。我有一个 ListView 产生完全相同的错误并将 EnableViewState 设置为 false 为我解决了这个问题。

于 2014-07-02T14:27:58.797 回答