4

Web サイトを .NET 1.1 から .NET 4.0 にアップグレードしました。私のGlobal.asax.vbファイルContext.Sessionでは、メソッド内のオブジェクトにアクセスしようとしていますがApplication_AcquireRequestState 、最初に Web サイトにアクセスしようとすると null 参照例外が発生します。

IIS 7.5 を使用して別のテスト サーバーに Web サイトの .NET 4.0 バージョンをインストールしたところ、すべて正常に動作しているように見えました。しかし、IIS 6 を使用する元のサーバーに Web サイトの .NET 4.0 バージョンをインストールすると、例外が発生します。

この例外が発生する理由は何ですか? IIS のバージョンが異なれば、HTTP パイプライン イベントの処理方法も異なりますか? または、私が使用している 2 つの .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 に答える