Подтвердить что ты не робот

HttpContext.Current.Session имеет значение null в файле Ashx

Я увидел несколько вопросов (здесь и здесь), но они не отвечают на мой вопрос. Я пытаюсь вызвать Ajax с помощью файла "ajax.ashx" и в функции для доступа к сеансу. По какой-то причине значение самого объекта Session равно null.

Пример использования:

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

Или:

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

В Web.config:

<sessionState timeout="1800"></sessionState>
4b9b3361

Ответ 1

Вы должны добавить в свой обработчик IRequiresSessionState объявление об этом как:

public class YourHandleName : IHttpHandler, IRequiresSessionState 
{
...

по умолчанию обработчики не связаны с сеансом, чтобы сохранить их минимум, добавив IRequiresSessionState, которые вы прикрепляете к сеансу.