2012-04-17 2 views
4

.NET 1.1에서 .NET 4.0으로 웹 사이트를 업그레이드했습니다. 내 Global.asax.vb 파일에서 Application_AcquireRequestState 메서드의 Context.Session 개체에 액세스하려고하는데 처음 웹 사이트에 액세스하려고하면 null 참조 예외가 발생합니다.Application_AcquireRequestState에서 Context.Session 개체가 null입니다.

IIS 7.5를 사용하는 다른 테스트 서버에 웹 사이트의 .NET 4.0 버전을 설치했는데 모든 것이 정상적으로 작동하는 것처럼 보였습니다. 그러나 IIS 6을 사용하는 원래 서버에 웹 사이트의 .NET 4.0 버전을 설치하면 예외가 발생합니다.

이 예외가 발생하는 이유는 무엇입니까? 다른 버전의 IIS가 HTTP 파이프 라인 이벤트를 다르게 처리합니까? 아니면 내가 사용하는 두 .NET 버전 사이에 세션 개체를 사용할 수있게되면서 차이가 있습니까?

도움을 주시면 감사하겠습니다.

당신은 Application_PreRequestHandlerExecute 대신

Application_AcquireRequestState의 난 그냥 같은 문제를 해결하지만, C#을 사용해야 코드를 변환하는 것은이 같은 것이어야

답변

3

:

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 
관련 문제