如何在处理请求后更新会话变量

时间:2012-06-27 15:42:20

标签: asp.net session-state

我有一个对象需要存储在会话中。

在每个请求开始时,我将对象复制到HttpContext.Current.Items集合,以便在请求期间重用它。

在请求期间,可以修改对象的状态,因此我需要将其写回会话,以便它可以用于下一个请求。

我尝试通过HttpApplication.EndRequest事件处理程序更新它,但我发现此时HttpContext.Current.Session为null。

HttpApplication中是否有另一个事件处理程序在处理完请求后发生,但我仍然可以在其中访问HttpContext.Current.Session?

1 个答案:

答案 0 :(得分:0)

会话可从 HttpApplication.PostRequestHandlerExecute 事件中获取,该事件根据文档提供:

“在ASP.NET事件处理程序(例如,页面或XML Web服务)完成执行时发生。”

此页面有助于理解HttpApplication事件的顺序:

http://blog.dotnetclr.com/archive/2007/03/14/HttpApplication-pipeline-demystified.aspx