2010-06-28 6 views
0

Je Randomly ai une application Web qui vient a récemment commencé à perdre au hasard des séances. La cause exacte est au mieux insaisissable, mais il semble que la session est perdue/perdue du côté du serveur et oblige l'utilisateur à fermer complètement son navigateur et à se relancer pour se reconnecter.ASP.NET MVC Web App - session échoue

Je souhaite pouvoir fournir du code, mais je n'arrive pas à comprendre où est le problème.

Voici un filtre d'action de la session que nous utilisons actuellement:

public class SessionExpireAttribute : ActionFilterAttribute 
{ 
    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     HttpContext lvContext = HttpContext.Current; 

     //if(

     // check if session is supported 
     if (lvContext.Session != null) 
     { 

      // check if a new session id was generated 
      if (lvContext.Session.IsNewSession) 
      { 

       // If it says it is a new session, but an existing cookie exists, then it must 
       // have timed out 
       string sessionCookie = lvContext.Request.Headers["Cookie"]; 
       if ((null != sessionCookie) && (sessionCookie.IndexOf("ASP.NET_SessionId") >= 0)) 
       { 

        lvContext.Response.Redirect("~/Account/Timeout"); 
       } 
      } 
     } 


     base.OnActionExecuting(filterContext); 
    } 
} 

Répondre

1

Avez-vous ajouté une nouvelle fonctionnalité qui ajoute ou supprime les fichiers du répertoire racine ou l'un de ses sous-répertoires? Cela peut entraîner la réinitialisation de la session.

+0

AFAIK il est seulement le dossier supprime cette cause cette , l'ajout et la suppression de fichiers doivent être corrects, à moins que vous ne les ajoutiez et ne les supprimiez du dossier/bin et/App_Data. La modification par programme du fichier Web.config peut également entraîner le redémarrage d'App Domain. Vérifiez que votre code ne fait aucune de ces choses n'importe où. Si la suppression de dossiers est un problème, faites le moi savoir, je connais un travail autour. –

+0

J'ai récemment ajouté deux éditeurs d'images basés sur le Web, mais ils ajoutent/suppriment uniquement un fichier tiff temporaire. Le Web.config n'est jamais modifié par programme ou manuellement à moins que nous publions une nouvelle révision. – alan

+0

La solution temporaire consistait à recycler l'App Pool après 100 appels. Cela a considérablement réduit notre taux d'incidents. – alan