【问题标题】:KeepSessionAlive Heartbeat FrequencyKeepSessionAlive 心跳频率
【发布时间】:2013-05-26 01:16:11
【问题描述】:

我创建了一个心跳机制来保持用户的会话活跃。它将每 60 秒运行一次。问题是,为什么不将其设置为 15 分钟?另外,为什么要使用心跳?我不能只在 IIS 中设置会话到期时间吗?

我只是想这样做,如果用户离开页面半小时左右去吃午饭,他们可以回来,当他们点击提交时他们的会话仍然存在,所以他们不会丢失他们可能在离开之前输入的所有数据。

$(function () {
    // every 60 seconds...
    setInterval(KeepSessionAlive, 60000);
});

function KeepSessionAlive() {
    $.post("/FACTS/_code/Heartbeat.ashx", null, function () {
        //console.log('Session is alive and kicking');
    });
}   

【问题讨论】:

  • 你可以。我不记得了,在我的 SharePoint silverlight 应用程序中,我的设置为 20 或 30 分钟。你试过调高吗?
  • 是的,我已经在 IIS 中打开了它,所以我想我不再需要心跳了,对吧?
  • 是什么让你说你不再需要心跳了?
  • 如果会话将持续 2 小时(正如我设置的那样),那么我想我不需要心跳(除非用户让它停留超过 2 小时.. .)。也许我可以将心跳设置为每 2 小时运行一次?你怎么看?
  • 试试看吧。老实说,我不确定。

标签: c# jquery asp.net iis


【解决方案1】:

如果您在 .NET 框架中使用 Session,则可以配置此项。

来自http://msdn.microsoft.com/en-us/library/h6bb9cz9%28v=vs.100%29.aspx 的 sn-p 描述了如果您使用 SessionState,如何在 web.config 中设置超时参数

<configuration>
  <system.web>
    <sessionState 
         mode="[Off|InProc|StateServer|SQLServer|Custom]"
        timeout="number of minutes">
      <providers>...</providers>
    </sessionState>
  </system.web>
</configuration

【讨论】:

  • 你推荐这个而不是心跳吗?如果我可以延长会话的半衰期,我不希望对服务器进行任何不必要的调用。
  • 这是内置在服务器中的,这意味着您不必通过网络保持恒定的流量来保持会话处于活动状态。服务器会为你做这件事。我绝对会在心跳中推荐这个。
  • 那么,与直接在 IIS 中增加会话持续时间相比,这种方法如何?参考。 technet.microsoft.com/en-us/library/cc725820(v=ws.10).aspx
  • 不,IIS 超时仅适用于经典 ASP 页面。如果要管理会话超时,需要通过 web.config 中的 sessionState 来完成。
  • 谢谢,我不知道。如果有人有兴趣找到这个答案stackoverflow.com/questions/1544500/…,这里是一个参考页面
猜你喜欢
  • 1970-01-01
  • 2016-12-01
  • 2016-03-20
  • 2015-08-26
  • 2011-12-16
  • 2021-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多