4

我将我的网站从 .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 对象可用时有区别吗?

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

4

1 回答 1

3

你应该使用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
于 2012-05-16T12:57:38.717 回答