我有一个客户刚刚报告了 ASP.Net Web 应用程序的错误。他们通过 Citrix 运行它,并且多年来一直运行良好。在最近的更新之后,不会更改与视图状态远程相关的任何内容,他们开始收到以下错误:
System.Web.HttpException: The state information is invalid for this page and might be corrupted.
---> System.Web.UI.ViewStateException: Invalid viewstate.
Client IP: ...
Port: 4191
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; WOW64; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
ViewState: 822106
Referer: http://....
Path: /...aspx
---> System.FormatException: Invalid length for a Base-64 char array.
at System.Convert.FromBase64String(String s)
at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)
at System.Web.UI.ClientScriptManager.EnsureEventValidationFieldLoaded()
注意奇怪的视图状态 - 822106。这应该看起来像 /wEPDwUJLTc4OTg3Mjg4D2Q....(等)。他们给了我一个 IP 地址,这样我就可以直接进去测试(通过 VPN),一切都运行良好。但是,这样做时我没有通过 Citrix 运行它。我通过设置以下内容关闭了视图状态:
<pages enableViewState="false" enableViewStateMac="false">
在 web.config 中,但这没有任何区别。奇怪的是它已经工作了多年。任何和所有建议都非常受欢迎。