L’état de session peut se gérer de plusieurs façon :
Dans le processus "InProc"
Dans SQLserveur ‘SQLServer"
Dans un serveur d’état "StateServer"
Nous allons nous préoccuper de l’installation de l’état de session avec SQL Serveur
Il faut lancer le service ASP.NET STATE le port par defaut est 42424
dans le shell lancer
NET START aspnet_state ou avec la console mmc des services lancer ASP.NET STATE (ou Service d’état ASP.NET)
Il faut executer la requête "InstallSqlState.sql" qui se trouve dans /WINNT/MICROSOFT.NET/Framework/[version] . Cette requête va installer des procedures stockées (dans une base ASPState) et plusieurs bases de données temporaires
Rq: lancer votre agent sql pour recevoir les notification d’installation correcte
Rq2 : Possibilité de lancer également installpersistsqlstate.sql
La différence est que Le script installsqlstate.sql place des informations dans la base tempdb qui au redémarrage de sql ou du serveur vont disparaitre; hors avec installpersistsqlstate.sql les informations seront conservées
http://support.microsoft.com/kb/311209
Le script doit être lancer qu’une seule fois (administrateur(sa)):
lancer dans le shell
OSQL -S localhost -U sa 6P
Configurer le Web.Config :
sessionState mode="SQLServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=[nomdemachine\instance];Trusted_Connection=true" cookieless="false" timeout="20" />
ou
sessionState mode="SQLServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=[nomdemachine\instance];userid=session;password=xxx" cookieless="false" timeout="20" />
ASP.NET accède aux données stockées par le biais de procédures stockées. LEs données de sessions sont stockées dans TempDb par défaut. On peut donc modifier l’endroit de stockage en modifiant les procédures stockées.
si utilisation de "trusted_connection=true" dans la chaine de connection de "sessionState" le compte ASPNET doit avoir les droits en exécution sur les procédures stockées de la base ASPState