最近,在为工作中的 ASP.NET 项目编写一些代码时。我们需要一个跟踪工具来获取用户活动的基本指标(页面点击计数等),我们将跟踪它们,然后通过inSession
将数据保存到 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
在此先感谢各位,感谢您的意见。:)