我有一个对象需要存储在会话中。
在每个请求开始时,我将对象复制到HttpContext.Current.Items集合,以便在请求期间重用它。
在请求期间,可以修改对象的状态,因此我需要将其写回会话,以便它可以用于下一个请求。
我尝试通过HttpApplication.EndRequest事件处理程序更新它,但我发现此时HttpContext.Current.Session为null。
HttpApplication中是否有另一个事件处理程序在处理完请求后发生,但我仍然可以在其中访问HttpContext.Current.Session?
答案 0 :(得分:0)
会话可从 HttpApplication.PostRequestHandlerExecute 事件中获取,该事件根据文档提供:
“在ASP.NET事件处理程序(例如,页面或XML Web服务)完成执行时发生。”
此页面有助于理解HttpApplication事件的顺序:
http://blog.dotnetclr.com/archive/2007/03/14/HttpApplication-pipeline-demystified.aspx