我们的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环境中重现这一点。所以,至少我可以确信这些都是罪魁祸首。
答案 0 :(得分:0)
重现防火墙/代理如何处理您的请求将会很困难。
更简单的方法是to persist your viewstate on the server-side来测试它;如果它适用于你的开发盒和prod,你知道它真的是那些截断你的Viewstate的东西。