防火墙或代理无效的Viewstate或Truncated Viewstate

时间:2016-08-04 10:56:34

标签: c# asp.net proxy firewall viewstate

我们的prod环境中出现了很多这样的错误,这些错误在我们的asp.net webforms应用程序的DEV上无法重现:

  

输入不是有效的Base-64字符串,因为它包含非基础64字符,       填充中有两个以上的填充字符或非空白字符       字符。

     

在System.Convert.FromBase64String(String s)
  在System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)
  在System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState)
  在System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter,String serializedState)
  在System.Web.UI.HiddenFieldPageStatePersister.Load()
  错误WTAS-ADM01 global_asax Application_Error App_global.asax

     

发生了未处理的应用程序错误:viewstate无效。

我已经对这些错误进行了快速研究,并了解到它们背后最可能的原因是页面上的Viewstate被某些防火墙或代理截断。但我不确定这些事情是否真的是原因。

任何人都可以指导我如何在我的DEV环境中重现这一点。所以,至少我可以确信这些都是罪魁祸首。

1 个答案:

答案 0 :(得分:0)

重现防火墙/代理如何处理您的请求将会很困难。

更简单的方法是to persist your viewstate on the server-side来测试它;如果它适用于你的开发盒和prod,你知道它真的是那些截断你的Viewstate的东西。