状态信息对于此页面无效且可能已损坏,现在无法工作(在Citrix下)

时间:2013-02-24 19:02:02

标签: asp.net exception viewstate citrix

我有一位客户刚刚报告了ASP.Net网络应用程序的错误。他们通过Citrix运行它,它运行良好多年。在最近的更新之后,它不会改变与viewstate远程相关的任何内容,他们已经开始收到以下错误:

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....(etc)。他们给了我一个IP地址,所以我可以直接进入测试(通过VPN),一切都很完美。但是,在执行此操作时,我并未通过Citrix运行它。我通过设置以下内容关闭了viewstate:

<pages enableViewState="false" enableViewStateMac="false">
在web.config中

,但这没有任何区别。奇怪的是它已经工作多年了。任何和所有的建议都受到了极大的欢迎。

1 个答案:

答案 0 :(得分:1)

在.aspx页面的顶部,在@page指令中,添加ValidateRequest属性并设置为false。

我只会在Intranet应用程序上推荐这个,因为它会打开一个安全漏洞。您可以使用EnableViewStateMac属性以相同的方式禁用MAC消息。 这可能会有所帮助:

http://support.microsoft.com/en-us/kb/2915218