【问题标题】:Why does my ASP.NET keep-alive logic not work?为什么我的 ASP.NET 保持活动逻辑不起作用?
【发布时间】: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


【解决方案1】:

在会话中添加值不是会话活动所必需的。如果您继续刷新 aspx 页面,会话应该会自动扩展。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-01
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多