ASP.NET MVC: доступ к данным сеанса в Session_End или в событии непосредственно перед
Я уже видел похожий вопрос к этому, опубликованному здесь. У меня по сути тот же вопрос, но с небольшим поворотом.
Я пытаюсь получить доступ к информации о сеансе из метода Session_End, но HttpContext является нулевым к тому времени, когда я туда попадаю, поэтому я не нахожу никакого реального способа добраться до него; почти как будто оно уже полностью стерто ко времени срабатывания Session_End.
Решение в связанном вопросе говорит, что я могу использовать this.Session
чтобы ссылаться на информацию о сеансе, которая мне нужна, которая обращается к HttpApplication.Session
переменная из класса HttpApplication, который наследует Global. Но в моем приложении мы сами переопределили переменную Session в Global так:
public new static HttpSessionState Session
{
get
{
return HttpContext.Current.ApplicationInstance.Session;
}
}
Так что для меня ссылка на this.Session попытается получить информацию из HttpContext, который является нулевым.
Итак, я думаю, у меня есть 2 вопроса. Во-первых, есть ли событие, которое запускается до Session_End, но до очистки данных сеанса? И, во-вторых, если ответ на первый вопрос - нет, есть ли еще способ получить доступ к этим данным из Session_End?
Благодарю.
1 ответ
Имейте в виду, что session_end будет вызываться только в том случае, если вы используете режим состояния сеанса in_proc: если вы развернете свое веб-приложение на фермах серверов, оно не будет поднято. в любом случае, даже если я не знаю, чего вы хотите добиться, лучше обработать конец сеанса в HttpModule. взгляните на ссылку ниже:
http://www.codeproject.com/KB/aspnet/SessionEndStatePersister.aspx