64

クライアントページ(IISサーバーではなくクロスドメインなど)で実行されるHttpHandlerがあり、埋め込みリンクをクリックすると、サーバー上のハンドラーが起動します。これまでのところ、すべてが正常に機能しています。

System.Web.HttpContext.Sessionオブジェクトを使用しようとしていますが、nullです。HttpHandlerが呼び出されるまでセッションがないため、nullだと思いますか?また、ハンドラーを複数回呼び出すと、呼び出しごとに新しいセッションが作成されますか?この場合、MSはHttpHandlerを呼び出すときにSessionオブジェクトを無効にしましたか?誰かがこれを確認できますか?

この場合、呼び出し間の状態を維持するために何をしますか?ある種のSQLベースのデータオブジェクト?ファイル?

TIA

4

4 に答える 4

146

HttpHandler にIRequiresSessionStateインターフェイスを実装させます。セッション状態の使用を有効にします。IRequiresSessionState はSystem.Web.SessionState名前空間にあります。

于 2009-07-09T22:34:04.623 に答える
31

空のインターフェースIReadOnlySessionStateを実装する必要があると思うので、コンテキストがロードされます。

編集して追加:

Michael Mortonの回答によると、IRequiresSessionStateを実装 することもできます。これにより、Sessionオブジェクトへの書き込みアクセスも可能になります。

于 2009-07-09T22:32:44.970 に答える
-10

現在のコンテキストを使用してみてください...

System.Web.HttpContext.Current.Session
于 2009-07-09T22:36:46.257 に答える