【问题标题】:Context.Session object is null in Application_AcquireRequestStateContext.Session 对象在 Application_AcquireRequestState 中为空
【发布时间】:2012-04-29 01:29:02
【问题描述】:

我将我的网站从 .NET 1.1 升级到 .NET 4.0。在我的Global.asax.vb 文件中,我试图访问Application_AcquireRequestState 中的Context.Session 对象 方法,当我第一次尝试访问该网站时,我得到一个空引用异常。

我使用 IIS 7.5 在另一台测试服务器上安装了网站的 .NET 4.0 版本,一切似乎都正常。但是,当我在使用 IIS 6 的原始服务器上安装网站的 .NET 4.0 版本时,我遇到了异常。

知道为什么我会收到此异常吗?不同版本的 IIS 是否以不同的方式处理 HTTP 管道事件?或者我使用的两个 .NET 版本之间的 Session 对象可用时有什么不同?

任何帮助将不胜感激,谢谢!

【问题讨论】:

    标签: asp.net iis-7 iis-6


    【解决方案1】:

    你应该使用Application_PreRequestHandlerExecute 而不是Application_AcquireRequestState

    我刚刚解决了同样的问题,但是对于 c#,翻译代码必须是这样的:

    Private Sub Application_PreRequestHandlerExecute(sender As Object, e As EventArgs)
    If TypeOf Context.Handler Is IRequiresSessionState OrElse TypeOf Context.Handler Is IReadOnlySessionState Then
        ' HttpContext.Current.Session should be available
    End If
    End Sub
    

    【讨论】:

      猜你喜欢
      • 2011-01-31
      • 2011-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-06
      • 1970-01-01
      相关资源
      最近更新 更多