Les données de session sont perdues lorsque vous utilisez ASP.NET mode d’état de session InProc

Cet article vous aide à résoudre le problème de perte de données de session lorsque vous utilisez ASP.NET mode d’état de session InProc.

              Version d’origine du produit : ASP.NET
Numéro de la base de connaissances d’origine : 324772

Symptômes

Les données de session pour les applications web ASP.NET semblent être perdues à intervalles aléatoires pour le mode d’état de session InProc.

Cause

Les données d’état de session sont perdues si la AppDomain classe ou le processus Aspnet_wp.exe (ou le processus W3wp.exe, pour les applications qui s’exécutent sur IIS 7.0 ou une version ultérieure) est recyclé. En règle générale, le AppDomain est redémarré en fonction de plusieurs facteurs :

  • Différents attributs (par exemple, l’attribut memoryLimit ) ont des paramètres particuliers dans la <processModel> section du fichier de configuration.
  • Le fichier Global.asax ou Web.config a été modifié.
  • Le Bin répertoire de l’application web a été modifié.
  • Le logiciel d’analyse antivirus a touché certains fichiers.config .

Le mode de session InProc indique que l’état de session est stocké localement. Cela signifie que le mode d’état de session InProc est stocké en tant qu’objets de vie dans l’application AppDomain web. C’est pourquoi l’état de session est perdu quand Aspnet_wp.exe (ou W3wp.exe, pour les applications qui s’exécutent sur IIS) ou les AppDomain redémarrages.

Résolution

Pour contourner ce problème, vous pouvez utiliser le mode d’état de session StateServer ou SqlServer. ASP.NET fournit ces autres approches pour le stockage des données d’état de session. Dans les modes StateServer et SqlServer, l’état de votre session n’est pas stocké dans le AppDomain de l’application web.

Remarque

Il est important de comprendre le comportement et les problèmes associés à chaque mode d’état de session lorsque vous décidez quel mode est adapté à vos besoins.

Statut

Ce comportement est inhérent au produit.

References

Pour plus d’informations sur ASP.NET gestion de l’état de session et d’autres informations connexes, consultez État de session.