【发布时间】:2013-02-22 00:17:09
【问题描述】:
为了确保我的会话始终保持打开状态,我创建了一个简单的 stayalive.aspx 页面。页面标题包含每 5 分钟刷新一次页面的元数据。
在我的页面加载逻辑中,我只是在会话中设置了一个值。
protected void Page_Load(object sender, EventArgs e) {
System.Web.HttpContext.Current.Session["Alive"] = 1;
}
我的理解是,只要您继续在会话中输入值,会话就会继续保持活跃。但是,这似乎不起作用。大约 30 分钟后,我仍然会遇到会话超时。
我想知道是否有人对为什么不工作有任何见解。
请注意,web.config 中的 sessionstate 和表单身份验证超时值设置为 300(5 小时)。
我的一个想法是,我每次都设置一个不同的值,而不是在会话中设置相同的值:
System.Web.HttpContext.Current.Session["Alive"] = DateTime.Now;
你认为这会有所帮助吗?
【问题讨论】:
-
您介意分享一下为什么您需要会话不超时吗?
-
您实际上不需要任何东西来调用会话,您只需调用页面,会话就会更新。但是您确定此页面已刷新吗?用户如何与您网站的其他部分进行交互,他们使该页面保持打开状态,并在其他一些方面工作?
-
检查这个替代解决方案:stackoverflow.com/questions/13997778/…
-
感谢您的帮助。当我在页面上显示当前时间时,页面正在刷新。如果我做的一切都正确,为什么会话会超时?
标签: asp.net