J'ai créé un site Web avec ASP.NET 2.0 et j'utilise une variable de session pour déterminer si un utilisateur a rempli un formulaire de vérification d'âge. Tout fonctionne comme prévu (je peux lire la variable de session sur toutes les pages) jusqu'à ce qu'un utilisateur accède à un répertoire virtuel. Quand ils le font, la page ne peut pas lire la variable de session.IIS, état de session et répertoires virtuels
Après de nombreuses recherches, j'ai jusqu'à présent fait ce qui suit.
- Allumez le service d'état ASP.NET
Ajout d'un nœud de sessionState à mes fichiers web.config, en changeant le mode StateServer (pour le site Web et répertoire virtuel).
< sessionState mode = "StateServer" cookieless = "false" timeout = "20" stateConnectionString = "TCPIP = 127.0.0.1: 42424" />
généré un nouveau machineKey et a ajouté à la fois le site et le répertoire virtuel ...
< machineKey
validationKey = "... 128 ..."
decryptionKey = » .. 0,64 ... » validation = « SHA1 » décryptage = « AES » />créé un nouveau pool d'applications et en vous que le site Web et il est répertoire virtuel utilisent le même pool d'applications.
Si j'écris sur l'identifiant de session <% = Session.SessionID% > est le même sur les pages et sur le répertoire virtuel (c'est le même sur tout le site). Je ne peux pas obtenir cette variable de session! Est-ce que quelqu'un sait quoi d'autre je peux essayer de faire fonctionner cela?
Merci.
J'ai réfléchi à la définition d'un cookie au lieu d'une variable de session, car tout est sous le même nom de domaine, mais il semble qu'il devrait y avoir une solution. Je pensais que la chose de l'état de la session fonctionnerait ... pourquoi cela fonctionne-t-il pour les fermes de serveurs, mais pas un répertoire virtuel? – Craig
@Craig - Je n'ai jamais travaillé avec des fermes de serveurs mais je pense que la réponse est toujours que l'application (répertoire virtural) est la même, juste située sur différents serveurs. – DaveB