Ответ 1
Я всегда считал, что Application_AcquireRequestState
было первым событием в Global.asax, который мог получить доступ к текущему сеансу. Это определенно не Application_BeginRequest
.
Я хочу проверить, содержит ли Сессия некоторые данные о ключе/значении в моем global.asax. Я не уверен, когда самое раннее время (и имя метода), чтобы проверить это.
спасибо:)
Я всегда считал, что Application_AcquireRequestState
было первым событием в Global.asax, который мог получить доступ к текущему сеансу. Это определенно не Application_BeginRequest
.
MSDN случайно упоминает, что состояние сеанса получено во время события Application_PostAcquireRequestState. Я бы хотел, чтобы он был скопирован на странице Обзор жизненного цикла.
Последнее, что вы можете получить в состоянии сеанса, находится в Application_PostRequestHandlerExecute, поскольку оно сохраняется SessionStateModule во время следующего события Application_ReleaseRequestState.
Вам нужно использовать BeginRequest
(http://msdn.microsoft.com/en-us/library/system.web.httpapplication.beginrequest.aspx), поскольку это первое событие, запущенное на объекте HttpApplication
(который Global.asax наследует).
Здесь вы увидите больше о жизненном цикле приложений ASP.NET - http://msdn.microsoft.com/en-us/library/ms178473.aspx (это для IIS 5 и IIS 6).
Согласно текст ссылки, самые ранние события в global.asax, к которым вы можете получить доступ к объектам сеанса, - это когда global.asax запускает событие Session_Start
Session__Start: вызывается, когда новый пользователь посещает веб-сайт приложения.
Session__End: увольняется, когда пользовательский сеанс истекает, заканчивается или покидает веб-сайт приложения