最近,在为工作中的 ASP.NET 项目编写一些代码时。我们需要一个跟踪工具来获取用户活动的基本指标(页面点击计数等),我们将跟踪它们,然后通过inSession将数据保存到 DB 。Session_EndGlobal.asax
我开始破解,初始代码运行良好,在每个页面加载时更新数据库。我想在每个请求上删除这个数据库命中,只是依靠Session_End存储所有数据。
所有跟踪代码都封装在Tracker类中,包括本质上包装会话变量的属性。
问题 是当我Tracker.Log()在Session_End方法中执行时HttpContext.Current.Session,Tracker 代码中的NullReferenceException. 现在,这是有道理的,因为HttpContext总是与当前请求相关,当然在 中Session_End,没有请求。
我知道它Global.asax有一个Session属性,它返回一个HttpSessionState实际上似乎工作正常的属性(我最终将它注入到跟踪器中)..
但我很好奇,我怎么能从外部获得对所HttpSessionState使用对象的相同引用?Global.asaxGlobal.asax
在此先感谢各位,感谢您的意见。:)