【发布时间】:2011-07-05 23:18:07
【问题描述】:
我花了大约两天时间研究这个问题,但似乎找不到解决方案,或者提供的解决方案似乎没有完全解决我遇到的问题。
- 我有一个 ASP.NET 应用程序,.NET 4.0
- 我们会间歇性地收到有关视图状态损坏的错误
- 这似乎只适用于基于 Mozilla 的浏览器(不能 100% 确定,尝试获取更多错误日志以确认)
- 似乎一开始就没有一致的可重现动作。
- 这与 MAC 不同步无关,我们已明确设置了机器密钥/验证密钥,但未设置为自动生成
- 仅在我们的生产环境中发生,在 DEV/QAT/UAT 中从未发生过
- 这种情况发生在具有更新面板的页面上 - 虽然某些页面确实具有非常大的视图状态,但其中一些页面的视图状态非常小
- 似乎无法重现。我发现的一些解决方案与“单击一个页面,单击一个转到另一个页面的按钮,在浏览器中单击返回并发生错误”有关 - 情况并非如此。
- Windows Enterprise 2008 上的 IIS7,16GB 内存,PAE 已启用。
- 页面会正常工作一段时间,然后停止工作 - 重新启动 IIS 暂时解决了这个问题。
- 这不在网络场上运行 异常/堆栈跟踪:
说明:
Error occurred System.Web.HttpException (0x80004005): The state information is invalid for this page and might be corrupted. ---> System.Web.UI.ViewStateException: Invalid viewstate.
Client IP: <removed>
Port: 21884
Referer: <removed>
Path: /PathToPage/Page.aspx
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; MS-RTC LM 8)
ViewState: /wEPDwULLTEyNTU4MDc4NT....<removed by user>... ---> System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Convert.FromBase64String(String s)
at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)
at System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState)
at System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState)
at System.Web.UI.HiddenFieldPageStatePersister.Load()
--- End of inner exception stack trace ---
at System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError)
at System.Web.UI.ViewStateException.ThrowViewStateError(Exception inner, String persistedState)
at System.Web.UI.HiddenFieldPageStatePersister.Load()
at System.Web.UI.Page.LoadPageStateFromPersistenceMedium()
at System.Web.UI.Page.LoadAllState()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
【问题讨论】: