Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Atteint de JavaScriptite Aiguë [Cyril Durand]

Expert ASP.net Ajax et WCF, Cyril Durand parle dans son blog de point techniques sur ASP.net, ASP.net Ajax, JavaScript, WCF et .net en général. Cyril est également consultant indépendant, n'hésitez pas à le contacter pour de l'assistance sur vos projets

Actualités

  • Blog de Cyril DURAND, passionné de JavaScript, Ajax, ASP.net et tout ce qui touche au developpement Web Client-Side.

    Consultant freelance, n'hésitez pas à me contacter pour vos projets .net : architecture, accompagnement, formation, ...

    View Cyril Durand's profile on LinkedIn
    hit counters


    Expertise Commerce server et BizTalk

ASP.net – Mise en place d’un serveur de session – à quoi correspond aspnet_state.exe

Par défaut, ASP.net stocke les sessions au sein de son propre processus, c’est à dire w3wp.exe ou aspnet_wp.exe pour IIS 5.1 et inférieur. Lorsque le pool d’application est recyclé ou redémarré les sessions sont alors perdues. Cela peut rapidement causer quelques soucis : perte de la connexion, perte du panier, ...

Afin de ne plus avoir ce problème, ASP.net propose différents moyens de stocker la session. Ces moyens sont configurables via l’attribut mode de la section system.web/sessionState du web.config. Les différentes valeurs possibles sont :

  • Off : Désactive complètement la session. Dans ce cas, une erreur sera remontée si on tente d’accéder à la session.
  • InProc : Valeur par défaut, stocke la session au sein du processus courant.
  • StateServer : Stocke la session dans un serveur de session. L’adresse du serveur de session se configure via l’attribut stateConnectionString.
  • SQLServer : Stocke la session sur un serveur SQL. La chaine de connexion vers le serveur se configure via l’attribut sqlConnectionString.
  • Custom : Utilise le type spécifié via l’attribut SessionIDManagerType. Ce type doit implementer ISessionIDManager

Afin d’utiliser le mode StateServer, il est nécessaire de changer le mode de démarrage du service aspnet_state. Ce service est automatiquement installé lorsque l’on installe ASP.net, c’est lui qui stockera la session ASP.net. Une fois lancé, on retrouve le service dans le gestionnaire de tâche sous le nom de aspnet_state.exe

image

Il faut ensuite modifier le fichier de configuration ainsi :

<configuration> <system.web> <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" /> </system.web> </configuration>

Désormais, les sessions sont stockés dans le process aspnet_state.exe et non w3wp.exe.

Par défaut, le serveur de session n’est pas accessible de l’extérieur, si vous utilisez plusieurs serveurs frontaux et que vous voulez monopoliser le serveur de session, il faut modifier la clé de registre suivante :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\aspnet_state\Parameters\AllowRemoteConnection

Si la valeur de cette clé est 0 alors le service windows sera accessible seulement pour la machine local. Sinon, si la valeur est 1, alors le service windows sera accessible depuis d’autres serveurs. Attention, pour des raisons de performances, il n’y pas d’authentification, il faut donc impérativement que ce port ne soit pas visible de l’extérieur.

image

J’ai déjà parlé plus précisément sur les mécanismes internes des sessions en ASP.net, vous pouvez consulter l’article : “Partager la session entre plusieurs sous-domaines avec http ou https” pour en savoir plus sur les sessions ASP.net

Avez-vous déjà mis en place le serveur de sessions ? Si oui, avez vous rencontrer des soucis particuliers ?

Posted: lundi 18 janvier 2010 19:10 par cyril
Classé sous : , , ,
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Parution de mon livre sur WPF 4 par Perspective le il y a 4 heures et 32 minutes

- EDM : comment utiliser l’Horizontal Entity Splitting par Matthieu MEZIL le il y a 17 heures et 39 minutes

- [WP7Dev][Reactive] Rendre les Reactive Extensions Plus Stables par Jerome Laban le 09-08-2010, 02:24

- [SharePoint 2010] [Visio] Manipulation n°1 : Comment générer automatiquement la carte d’un site Web avec Visio ? par Le blog de Patrick le 09-07-2010, 14:12

- WinDbg / SOS / PSSCOR2 : Failed to load data access DLL (mscordacwks) par CoqBlog le 09-06-2010, 22:29

- Perspective 2.0 : version finale par Perspective le 09-06-2010, 19:42

- SharePoint 2010 : Comparaison entre la version 2007 et la version 2010 par Philippe Sentenac [MVP SharePoint] le 09-06-2010, 12:00

- Utilisation de la réplication SQL dans le code .NET d'une application mobile - Implémentation & Conseils : PARTIE 1/3 (classe SqlCeReplication & premi... par Le Blog de Pi-R (Pierre Cambier) le 09-06-2010, 08:37

- Quelques trucs intéressants (05/09/2010) par CoqBlog le 09-05-2010, 14:53

- EnumerableCollection par Matthieu MEZIL le 09-03-2010, 23:23