Je cours un site Web ASP.NET sur ma boîte de développement (.NET 2.0 sur Vista/IIS7). La méthode Session_Start dans global.asax.cs consigne chaque appel dans un fichier (log4net). La méthode Session_End enregistre également tous les appels. J'utilise l'état de session InProc et définissez le délai d'expiration de la session à 5 minutes (pour éviter d'attendre 20 minutes). J'ai frappé le site Web, attendez 5 minutes unité Je vois la journalisation Session_End. Ensuite, je F5 le site Web. Les navigateurs ont toujours le cookie de session et l'envoient au serveur. Session_Start est appelée et une nouvelle session est créée en utilisant le même identifiant de session (btw: j'ai besoin que ce soit le même identifiant de session, car il est utilisé pour stocker des données dans la base de données).Grand nombre de Session_Start avec l'ID de la même session
Résultat: Chaque fois que j'appuie sur F5 lors d'une session précédemment terminée, la méthode Session_Start est appelée, la requête est exécutée et la méthode Session_End est appelée immédiatement.
Lorsque j'ouvre un navigateur différent, la méthode Session_Start est appelée une seule fois. Puis, après 5 minutes, Session_End chaque F5 provoque l'exécution de la séquence Session_Start/request/Session_End.
web.config section pertinente:
<system.web>
<compilation debug="true" />
<sessionState timeout="2" regenerateExpiredSessionId="false" />
</system.web>
J'ai besoin d'aide sur ce même problème, mais sur des sites dans lesquels je n'ai pas joué avec la session. Complètement au hasard le site fera une transaction DB que j'ai dans Session_Start des centaines de fois par jour pour un utilisateur avec un ID de session. Aucun avertissement, sites aléatoires affectés, et pas de réponses. –
Regardez [ce lien] (http://stackoverflow.com/a/11375003/779408). Il y a une vraie solution là-bas. – breceivemail