Question

Nous essayons de faire en sorte que l'état de la session fonctionne à l'aide de la ligne web.config suivante:

<sessionState 
    mode="SQLServer" 
    stateConnectionString="tcpip=127.0.0.1:42424" 
    sqlConnectionString="Data Source=dbServer;User ID=stateUser;Password='thepassword'" 
    cookieless="false" 
    timeout="20"/>

Sur dbServer, nous avons exécuté la commande suivante pour configurer la base de données ASPState:

aspnet_regsql.exe -S localhost-E -ssadd -sstype p

Sur le serveur Web, nous avons démarré le service d'état ASP.Net. Cependant, aucun enregistrement n'apparaît dans les tables ASPStateTempApplications ou ASPStateTempSessions, et il semble bien que la session est toujours en cours de stockage.

Qu'est-ce qui ne va pas? Le service d'état doit-il être exécuté sur le serveur de base de données? Est-il installé avec IIS, car il n’est pas disponible sur cette machine, malgré l’installation de .net 3.5.1.

Les journaux IIS ne montrent aucun signe d’échec. Quel est le problème?

Était-ce utile?

La solution

Tout d'abord, vous n'avez pas besoin de démarrer le service d'état pour utiliser l'état de session SQL Server. Oubliez le service d'état ASP.NET.

Êtes-vous sûr que votre site crée une variable de session? Juste parce que vous avez mis ces modifications dans votre web.config, si vous n'utilisez jamais de variables de session, elles ne seront pas utilisées.

Autres conseils

S'il y a vraiment des guillemets autour du mot de passe, essayez de les supprimer:

sqlConnectionString="Data Source=dbServer;User ID=stateUser;Password=thepassword"

Et supprimez la ligne suivante, elle n’a aucune fonction pour le stockage de session SQL:

stateConnectionString="tcpip=127.0.0.1:42424" 

Et vous pourriez aussi bien arrêter le service d’État; cela est nécessaire pour l'état de session hors processus, pas pour l'état de session SQL Server.

En outre, l'état de la session SQL Server nécessite que vous exécutiez InstallSqlState.sql sur la base de données, et non aspnet_regsql.exe . Il devrait créer une nouvelle base de données ASPState .

Pourquoi ne pas écrire un petit module Http? Vous pouvez le laisser en place pendant la période au cours de laquelle vous devez faire la transition des utilisateurs vers la nouvelle base de code. Le module pourrait travailler sur chaque demande de page pour vérifier la session de l'utilisateur et décider si elle doit être abandonnée. Peut-être enregistrez-vous une chaîne de version d'application dans la session de l'utilisateur lors de la création de la session et comparez la chaîne de version actuelle à celle-ci.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top