web-dev-qa-db-fra.com

HttpContext.Current.Session est null dans le fichier Ashx

J'ai vu quelques questions ( ici et ici ) mais elles ne répondent pas à ma question. J'essaie d'appeler Ajax en utilisant le fichier "ajax.ashx", et en fonction pour accéder à Session. Pour une raison quelconque, la valeur de l'objet Session lui-même est nulle.

Exemple d'utilisation:

Session = HttpContext.Current.Session // This is null

Ou:

public virtual void ProcessRequest(HttpContext context)
{
    System.Web.SessionState.HttpSessionState Session = context.Session; 
    // This is null
}

Dans le Web.config:

<sessionState timeout="1800"></sessionState>
39
Mosh Feu

Vous devez ajouter sur votre gestionnaire le IRequiresSessionState sur la déclaration de celui-ci comme:

public class YourHandleName : IHttpHandler, IRequiresSessionState 
{
...

par défaut, les gestionnaires ne sont pas connectés à la session pour les garder au minimum, en ajoutant le IRequiresSessionState que vous les attachez à la session.

85
Aristos