为什么应用程序会抛出几个“;由于对象“”的当前状态,操作无效;错误

本文关键字:状态 无效 错误 操作 对象 应用程序 于对象 为什么 几个 | 更新日期: 2023-09-27 18:21:24

本周,我们的几个.NET(C#)web应用程序出现错误"由于对象的当前状态,操作无效"。

它们都是web应用程序,共享相同的前端和数据库服务器,尽管它们都查询不同的数据库。

我以前从未见过这个错误,所以当它出现在三个看似无关的应用程序中时,我想一定是出了什么问题。

我的问题不在于这个错误意味着什么,而是是否有人知道服务器可能发生的更改,这可能会导致更容易发生这种情况?

我知道前端服务器最近重新启动了,所以配置设置本可以更改,但数据库服务器一直在运行。

从堆栈跟踪来看,一个应用程序提到了ThrowIfMaxHttpCollectionKeysExceeded(),但任何应用程序的代码都没有增加,甚至没有任何变化,这可能会引发这样的错误。

会发生什么变化?

为什么应用程序会抛出几个“;由于对象“”的当前状态,操作无效;错误

您最近是否应用了任何安全更新?

微软最近修补了几个安全漏洞:微软安全公告MS11-100。

该修复的一个潜在副作用是,具有大量元素的HTTP提交(例如,具有大量字段的表单)将导致从ThrowIfMaxHttpCollectionKeysExceeded抛出InvalidOperationException

如果你的申请合法地需要提交许多元素,那么你可以编辑你的web.config来提高限制:

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