会话不会活着

时间:2016-04-27 03:42:28

标签: c# asp.net session state-management

我正在使用以下文章在我的asp.net应用程序中保持会话活动。

How to Keep Session Alive

但是当我在javascript中使用alert检查会话变量值时,我没有找到任何内容。 alert('<%=Session["Heartbeat"]%>');

实际上在我的网页上没有回发。我正在从Jquery Ajax做的所有工作。当只有回发时,该文章的解决方案才有效。 但我想让我的会话保持活力而不进行任何回发。

请帮助伙伴.....

2 个答案:

答案 0 :(得分:1)

如果没有完全回发,

alert('<%=Session["Heartbeat"]%>');将无效,因为<%=Session["Heartbeat"]%>是服务器端代码。

为了使Session保持活跃,您只需要对服务器进行简单的Ajax调用。

实现ASHX通用处理程序的最简单方法,并通过Ajax调用它。例如,

Ping.ashx

<%@ WebHandler Language="C#" CodeBehind="Ping.ashx.cs" Class="PROJECT_NAMESPACE.Ping" %>

Ping.ashx.cs

public class Ping : IHttpHandler
{ 
   public void ProcessRequest(HttpContext context)
   {
      context.Response.ContentType = "text/plain";
      context.Response.Write("Ping");
   }

   public bool IsReusable { get { return false; }}
}

答案 1 :(得分:0)

请试试example: -

<script language="javascript" type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script language="javascript" type="text/javascript">

    function KeepSession() {
    // A request to server
    $.post("http://servername:port/appName/SessionCheck.aspx");

    //now schedule this process to happen in some time interval, in this example its 1 min
    setInterval(KeepSession, 60000);
}

    // First time call of function
    KeepSession(); 
 </script>