Asp.Net Session is null in ashx file

2019-01-08 10:44发布

问题:

I am trying to access the Session variable in Asp.Net ashx handler as shown below.

public void ProcessRequest (HttpContext context) {
        context.Session["VariableName"] = Id;
    }

But the context.Session is always Null inside the above method. How do I access Session objects in ashx file?

回答1:

You have to "implement" either IRequiresSessionState or IReadOnlySessionState, with former providing full access to session, and the latter providing read-only access.

I'm quoting "implement" here because these two are so-called "marker interfaces", which means they have no members.



回答2:

In VB, implement the interfaces mentioned by Anton (IRequiresSessionState or IReadOnlySessionState) like this:

Public Class MyAshxFile

    Implements System.Web.IHttpHandler
    Implements System.Web.SessionState.IRequiresSessionState ''need this for session variables
    Implements System.Web.SessionState.IReadOnlySessionState ''need this for session variables