最近我的应用程序已经获得了大量的例外情况。
我在Windows XP机器上运行ASP.net 3.5。例外往往是随机的。
该应用程序使用Telerik RadControls for ASP.NET AJAX Q2 2010 SP1。
异常和StackTrace在下面。
Exception Type: System.FormatException
Message: Invalid character in a Base-64 string.
StackTrace: 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.SessionPageStatePersister.Load()
关于可能导致这种情况的任何想法?此外,这可能或可能不相关,通常是具有适当数据量(大于2分钟加载时间)的页面随机超时。我在web.config中增加了每个长时间加载页面的超时...
<location path="mypage.aspx">
<system.web>
<httpRuntime executionTimeout="1920"/>
</system.web>
</location>
感谢您的帮助。
-Daniel
答案 0 :(得分:-1)
查看您的应用程序池/网站是否因某种原因(例如内存或时间限制)重新启动。
如果ViewState未正确反序列化,则问题是ASP.NET无法正确解密,或者某些内容更改了页面上ViewState客户端字段的值。您可以尝试在web.config中禁用加密:
<system.web>
<pages viewStateEncryptionMode=”Never”>
</pages>
</system.web>
由于第二个原因,可能是防火墙或项目的其他部分正在修改ViewState。检查您是否使用了任何优化代码并尝试禁用它。
最后,您可以尝试为某些不需要它的控件禁用ViewState以减小其大小,或者您可以尝试使用web.config中的maxPageStateFieldLength属性将输入拆分为几个较小的。 / p>