Asp.Net Viewstate验证失败

时间:2019-03-05 15:37:20

标签: c# asp.net .net viewstate

这里是问题的描述:我有一个Web场[负载均衡]服务器,并且我运行了一个ASP.Net Web窗体站点,根本没有任何问题!最近没有任何变化,我开始收到此错误:

Event code: 4009 
Event message: Viewstate verification failed. Reason: Viewstate was invalid. 
Event time: 3/5/2019 1:24:31 AM 
Event time (UTC): 3/5/2019 6:24:31 AM 
Event ID: 40c56ea2a8ad4c059357fc4673003bbf 
Event sequence: 359 
Event occurrence: 1 
Event detail code: 50204 

我搜索/阅读了大多数Stack-overflow的线程,并努力确保所有内容都如Microsoft推荐的那样

我到目前为止所做的尝试,也许这可以帮助其他人解决这个问题:

  • 检查了两个服务器的视图状态,它们是相同的,并且未设置为自动生成。
  • 尝试使用以下代码将视图状态存储在会话中:

     protected override object LoadPageStateFromPersistenceMedium()
            {
                return Session["_ViewState"];
            }
    
        protected override void SavePageStateToPersistenceMedium(object viewState)
        {
            Session["_ViewState"] = viewState;
        }
    
  • 我试图在web.config文件中设置maxPageStateFieldLength="128",这会导致此错误:

    Error Message: Invalid viewstate: Missing field: __VIEWSTATE2414.
    Stack Trace: 
    at System.Web.UI.Page.get_RequestViewStateString()
    
  • 将链接到IIS中站点的应用程序池中的“空闲超时”属性扩展为24小时而不是20分钟

  • 我读了article

  • 我在母版页中有ANTI_CSRF,这是在避免viewState问题之前-我再次检查了它根本没有引起此问题。

最重要的是,我仍然收到viewState无效异常,但希望此列表可以对其他人有所帮助。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,我通过应用此问题中的建议来解决此问题: Here

它非常类似于将ViewState存储在会话中时所应用的方法,但是采用了另一种方法-希望这会有所帮助。