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

Другие вопросы по тегам