C# 会话超时后Viewstate已销毁

C# 会话超时后Viewstate已销毁,c#,asp.net,session,webforms,viewstate,C#,Asp.net,Session,Webforms,Viewstate,我们正在将ViewState保存到内存中,但当会话结束时,ViewState将被销毁。为什么?如果将viewstate保存在内存中,则将其保存在会话中。因此,当会话结束时,viewstate也将从内存中删除。那么,如果我保存CachePageStatePersister(第页)或SessionPageStatePersister(第页),它仍将保存在会话中? protected override PageStatePersister PageStatePersister {

我们正在将ViewState保存到内存中,但当会话结束时,ViewState将被销毁。为什么?

如果将viewstate保存在内存中,则将其保存在会话中。因此,当会话结束时,viewstate也将从内存中删除。

那么,如果我保存CachePageStatePersister(第页)或SessionPageStatePersister(第页),它仍将保存在会话中?
       protected override PageStatePersister PageStatePersister 
   {
       get
       {
           if (System.IO.Path.GetFileName(this.Page.Request.FilePath).Equals("login.aspx") || System.IO.Path.GetFileName(this.Page.Request.FilePath).Equals("login_error.aspx"))
               return base.PageStatePersister;
           string viewStateStorage = "memory";
           if (ConfigurationManager.AppSettings["ViewStateStorage"] != null)
               viewStateStorage = ConfigurationManager.AppSettings["ViewStateStorage"];               
           if (viewStateStorage != null && viewStateStorage.Equals("memory"))
           {
               return new CachePageStatePersister(Page);
           }
           if (viewStateStorage != null && viewStateStorage.Equals("session"))
           {
               return new SessionPageStatePersister(Page);
           }
           return base.PageStatePersister;
       }
   }