为了确保我的会话始终保持打开状态,我创建了一个简单的 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;
你认为这会有帮助吗?