Сессия Asp.Net имеет значение null в файле ashx
Я пытаюсь получить доступ к переменной Session в обработчике asp.Net ashx, как показано ниже.
public void ProcessRequest (HttpContext context) {
context.Session["VariableName"] = Id;
}
Но context.Session всегда находится в Null внутри указанного метода. Как получить доступ к объектам сеанса в файле ashx?
Ответы
Ответ 1
Вам нужно "реализовать" IRequiresSessionState или IReadOnlySessionState, причем предыдущий предоставляет полный доступ к сеансу, а последний предоставляет доступ только для чтения.
Я цитирую "реализовать" здесь, потому что эти два являются так называемыми "маркерными интерфейсами ", что означает, что у них нет членов.
Ответ 2
В VB реализуйте интерфейсы, упомянутые Антоном (IRequiresSessionState или IReadOnlySessionState) следующим образом:
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