我将我的网站从 .NET 1.1 升级到 .NET 4.0。在我的 Global.asax.vb
文件我试图访问 Context.Session
Application_AcquireRequestState
中的对象
方法,当我第一次尝试访问该网站时出现空引用异常。
我使用 IIS 7.5 在不同的测试服务器上安装了 .NET 4.0 版本的网站,一切似乎都正常。但是当我在使用 IIS 6 的原始服务器上安装 .NET 4.0 版本的网站时,我收到了异常。
知道为什么我会收到此异常吗?不同版本的 IIS 是否以不同方式处理 HTTP 管道事件?或者与我正在使用的两个 .NET 版本之间的 Session 对象何时可用有区别吗?
任何帮助将不胜感激,谢谢!!
最佳答案
您应该使用 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
关于asp.net - Application_AcquireRequestState 中的 Context.Session 对象为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10195791/