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