2010-08-19 6 views
2

J'ai une application ASP.NET avec 5 HTTPHandlers .ashx qui implémentent IRequiresSessionState ou IReadOnlySessionState.Préserver les variables de session sur les HttpHandlers

Lors de l'appel du premier gestionnaire, je crée une variable et la stocke dans la session.

Lorsque j'appelle le HttpHandler suivant, la variable n'est pas disponible dans l'objet de session.

Je suis l'utilisation context.Session.

J'ai un global.asax où je récupère l'ID session.

Existe-t-il un moyen de conserver les variables de session sur HttpHandlers ou chaque gestionnaire a-t-il sa propre session?

Répondre

3

HeartAttack a une bonne discussion de ce ici:

http://weblogs.asp.net/ashicmahtab/archive/2008/09/18/how-to-use-session-values-in-an-httphandler.aspx

Fondamentalement, vous devez faire quelque chose comme:

public class MyHandler:IHttpHandler,IRequiresSessionState 

HTH de.

Ceci devrait maintenir l'état de la session entre les gestionnaires. C'est-à-dire, lorsque vous vous connectez, vous n'avez qu'une session pour toutes vos demandes dans ce domaine. Je vous suggère de vérifier que vous êtes bien connecté. Le cache fonctionnera bien sûr car il est commun à toutes les sessions mais beaucoup plus cher sur le serveur car il ne disparaît pas facilement.

+1

J'en hérite déjà IRequiresSessionState. Ce que je veux, c'est préserver les valeurs de Session à travers HTTPHandlers, parce que chaque requête à un HTTPHandler obtient une nouvelle session. Fondamentalement, j'ai décidé d'utiliser le cache de l'application à la place. – User48765902

Questions connexes