Недавно, работая над некоторым кодом для проекта ASP.NET на работе. Нам понадобилось отслеживание, чтобы использовать базовые показатели активности пользователя (количество просмотров страницы и т.д.), Мы будем отслеживать их в Session, а затем сохранять данные к DB через Session_End в Global.asax.
Я начал взламывать, исходный код работал нормально, обновляя БД при каждой загрузке страницы. Я хотел бы удалить этот БД по каждому запросу и просто полагаться на Session_End для хранения всех данных.
Весь код отслеживания инкапсулируется в класс Tracker, включая свойства, которые по существу переносят переменные сеанса.
Проблема заключается в том, что когда я выполнил Tracker.Log() в методе Session_End, HttpContext.Current.Session в коде Tracker с ошибкой NullReferenceException. Теперь это имеет смысл, поскольку HttpContext всегда относится к текущему запросу и, конечно, в Session_End, запроса нет.
Я знаю, что Global.asax имеет свойство Session, которое возвращает HttpSessionState, который на самом деле работает нормально (я ввел его в трекер).
Но мне любопытно, как, черт возьми, я могу получить ссылку на объект HttpSessionState, используемый Global.asax извне Global.asax?
Спасибо заранее, ребята, я ценю вход.:)