2009-06-04 6 views
4

J'aime héberger l'application Web asp.net dans IIS 7.0 (Windows Server 2008).Expiration de la session dans IIS 7

J'ai configuré l'état de la session en mode sessiontate = "inproc" timeout = 120. Même la session expire dans les 15 secondes. Quel pourrait être le problème?.

Merci

Répondre

7

Vérifiez le journal des événements Windows pour vous assurer que le processus de travail n'est pas forcé de recréer.

Il peut y avoir quelque chose dans votre code qui force le processus de travail à se forcer à recliquer dans quel cas, lorsque la session est stockée dans Proc, il perd toutes les valeurs de session qu'il contient.

10

Vous pouvez vérifier le délai d'expiration de votre connexion dans ces 2 zones. enter image description here

enter image description here

OU

Advanced settings

+1

Je pense que le délai d'attente de session et le délai de connexion sont deux choses différentes, mais bon à savoir. – Jerther

4

Mmerrell a écrit cela et est la clé pour trouver l'origine du problème:

Vérifiez le journal des événements Windows pour assurer que le travailleur Le processus n'est pas étant forcé de recyle.

Il peut y avoir quelque chose dans votre code qui provoque le processus de travail forcer à recyle dans quel cas lorsque la session est stockée dans Proc il perdra toutes les valeurs de session qu'il détient.

Regardez l'Observateur d'événements sur « journaux Windows/système », vous êtes à la recherche d'un « ÉTAIT » événement Source qui contient une description comme: « Un processus de travail avec l'identifiant du processus « 2980 » pool d'applications au service 'SIAC' a été arrêté en raison de l'inactivité.La configuration du délai d'expiration du pool d'applications a été définie sur 20 minutes et un nouveau processus de travail sera démarré si nécessaire. C'est le symptôme que vous recherchez.

Event viewer with the WAS event

Hope this helps.

1

Avait presque le même problème avec le gestionnaire HTTP écrit en C# en utilisant SessionState. Semble la propriété IsReusable devrait être faux sinon je courais dans le problème de la session lâche.

Merci Mmerrell pour sa réponse, qui m'a amené sur la bonne voie.

0

Il ya aussi une autre chose à vérifier - Paramètres avancés du pool d'applications - Limite de mémoire virtuelle. Voir si elle est explicitement définie - car elle peut recycler automatiquement une fois dépasse la limite fixée.Surtout si vous voyez l'erreur dans votre journal des événements comme:

Un processus de travail avec l'ID de processus du pool d'applications "****" desservant "votre-nom-pool-d'application" a demandé un recyclage car il a atteint limite de mémoire virtuelle.