3

ASP.NetWebアプリケーションでエラーを報告したばかりのお客様がいます。彼らは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....(etc)のようになります。彼らは私にIPアドレスを教えてくれたので、私は直接(VPN経由で)入ってテストすることができ、すべてが完璧に機能しました。ただし、これを行うときは、Citrix経由で実行していませんでした。次の設定でビューステートをオフにしました。

<pages enableViewState="false" enableViewStateMac="false">

web.configにありますが、これによる違いはありません。奇妙なことに、それは何年も働いていました。ありとあらゆる提案を大歓迎しました。

4

1 に答える 1

1

.aspxページの上部の@pageディレクティブで、ValidateRequestプロパティを追加し、falseに設定します。

ただし、これはセキュリティホールを開くため、イントラネットアプリケーションでのみお勧めします。EnableViewStateMacプロパティを使用して、同じ方法でMACメッセージを無効にすることができます。これは役立つかもしれません:

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

于 2015-03-15T23:39:13.997 に答える