c # session "Ссылка на объект не установлена ​​для экземпляра объекта." - PullRequest
6 голосов
/ 26 января 2011

У меня есть файл ASHX:

Ссылка на объект не установлена ​​на экземпляр объекта.

На линии:

HttpContext.Current.Session["loggedIn"] = true

Так я правильно использую сессии?

Ответы [ 2 ]

15 голосов
/ 26 января 2011

Я бы предположил, что Session является виновником здесь;со ссылкой здесь , вы можете попробовать добавить : IRequiresSessionState в ваш обработчик (код позади ashx).Таким образом, у вас должно быть что-то вроде:

public class Handler1 : IHttpHandler, System.Web.SessionState.IRequiresSessionState 
{

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        context.Response.Write("Hello World");
        context.Session["loggedIn"] = true;
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

Обратите также внимание, что легче говорить с переданным context, но HttpContext.Current тоже должно работать.

4 голосов
/ 26 января 2011

Обработчики ASHX по умолчанию не имеют информации о сеансе.

См. Эту страницу http://www.hanselman.com/blog/GettingSessionStateInHttpHandlersASHXFiles.aspx

IRequiresSessionState 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...