2012-02-29 10 views
3

私のアプリは、Application_OnPostAuthenticateRequestのイベントの中のServer.Transferを、URL rewiteの一種として動作するように呼び出すことがあります。これが発生し、Sessionにアクセスする必要があるとき、私はHttpExceptionを取得します: "セッション状態はenableSessionStateがtrueに設定されている場合にのみ使用できます..."私はServer.Transferを呼び出すイベントのためにこれが起こっていると仮定しています。それが私が例外を取得している理由ですか?転送はいつ行う必要がありますか?コンテキストハンドラがIRequiresSessionStateまたはIReadOnlySessionStateであると仮定して、Sessionがアクセスできる最初のglobal.asaxイベントは何ですか?

+0

私はセッション変数がSESSION_START –

+0

はい、それはその後に作成されるの実行後に使用可能ですが、それは後続の要求のすべてのイベントでアクセス可能であると思いますか?私はいくつかのイベントを試したので、ここでは間違っていると思うし、同じ例外が出てくる。また、私はServer.Transferを呼び出さなければなりません。 – Mike

答えて

8

AcquireRequestStateの前には、このイベントが発生した後でセッション状態を使用できるようにする必要があるため、要求のセッション状態にアクセスする必要がある場合は、そのイベントを待つ必要があります。

this pageを参照してください。

  1. ...
  2. PostAuthenticateRequestイベントを発生させます。
  3. ...
  4. AcquireRequestStateイベントを発生させます。
  5. ...
+0

参考にしていただきありがとうございますが、私はserver.transferを呼び出す場合でも例外を取得しています。/blog/someentryがハンドラをまったく読み込まないためセッションがないのですか? – Mike

関連する問題