ASP.NET MVC:如何在Session_End或事件之前访问会话数据?

4

我已经看到了一个类似的问题在这里发布:这里。我基本上有同样的问题,但是有一个小变化。

我正在尝试从Session_End方法中访问Session信息,但是当我到达那里时,HttpContext为null,所以我找不到任何真正的方法来获取它;就好像Session_End触发时它已经被完全清除一样。

相关问题中的解决方案说我可以使用this.Session来引用我需要的会话信息,它访问Global继承自HttpApplication类的HttpApplication.Session变量。但在我的应用程序中,我们重新定义了Session变量,看起来像这样:

    public new static HttpSessionState Session
    {
        get
        {
            return HttpContext.Current.ApplicationInstance.Session;
        }
    }

对我来说,引用this.Session将尝试从HttpContext中获取信息,而HttpContext为null。

所以我想我有两个问题。首先,是否有一个事件在Session_End之前但在清除会话数据之前触发?其次,如果第一个问题的答案是否定的,是否仍有一种方法可以从Session_End访问该数据?

谢谢。

1个回答

0
请注意,session_end 仅在使用 in_proc 会话状态模式时引发:如果您将 Web 应用程序部署在服务器农场上,则不会引发该模式。无论如何,即使我不知道您想要实现什么,最好还是在 HttpModule 中处理会话结束。请查看下面的链接:

http://www.codeproject.com/KB/aspnet/SessionEndStatePersister.aspx


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接