2014-07-14 1 views
0

J'ai créé un site web asp.net 4.0 crm. J'ai un gros problème avec la gestion de session il expire session inattendue comment jamais j'ai appliqué une technique de keepalive.ashx qui maintient la session en vie aussi longtemps que possible.Gardez le temps de session le plus longtemps possible avec asp.net 4.0 avec C#

<%@ WebHandler Language="C#" Class="keepalive" %> 

using System; 
using System.Web; 
using System.Web.SessionState; 

public class keepalive : IHttpHandler, IRequiresSessionState 
{ 

    public void ProcessRequest(HttpContext context) 
    { 
     if (context.User.Identity.IsAuthenticated) 
     { 
      // authenticated sessions 
      context.Response.ContentType = "text/plain"; 
      context.Response.Write("Auth:" + context.Session.SessionID); 
     } 
     else 
     { 
      // guest 
      context.Response.ContentType = "text/plain"; 
      context.Response.Write("NoAuth:" + context.Session.SessionID); 
     } 
    } 

    public bool IsReusable { 
     get { 
      return false; 
     } 
    } 

} 

c'est comment j'appelle:

<script type="text/javascript"> 
     var interval = null; 
     (function() { 
      // keep me alive 
      interval = setInterval(function() { 
       $.get('../keepalive.ashx', function (d) { 
        $('#response').append(d + '<br/>'); 
       }); 
      }, 30000); 
     })(); 


     // If we want to stop the interval.... 
     function Stop() { 
      clearInterval(interval); 
     } 
</script> 

mais le problème est le même là. session inattendue sortir.

ceci est ma ligne web.config:

<sessionState mode="InProc" cookieless="false" timeout="525600"/> 

mais does't solution donnant satisfaction.

s'il vous plaît aidez-moi ...

Répondre

1

Essayez ceci (KeepSessionAlive.ashx peut être vide):

function KeepSessionAlive() 
{ 
    $.get(ResolveUrl('~/KeepSessionAlive.ashx'), function (data) { }); 
} 

$(function() { 
    setInterval(KeepSessionAlive, 300000); //5 minutes 
}); 


function ResolveUrl(url) 
{ 
    if (url.indexOf("~/") == 0) 
    { 
     url = baseUrl + url.substring(2); 
    } 
    return url; 
} 
Questions connexes