3

ユーザーが最初にASP.NETとのセッションを確立した後、後続のHTTP要求ごとに、StateServerセッションオブジェクトのどれだけが即座に自動的にフェッチされ、逆シリアル化されますか?例えば:

  1. リクエストが受信され、セッションが再確立された瞬間に、すべてのセッションオブジェクトがフェッチされますか、または...
  2. セッションが再確立された後、HttpContext.Session ["..."]への各要求が行われるときに、セッションオブジェクトが個別にフェッチされ、逆シリアル化されますか?

その答えは、セッションの使い方に大きな影響を与えます。たとえば、大量のユーザーデータをセッションにプリフェッチし、StateServerセッションがHTTPリクエストごとに完全に逆シリアル化されている場合、パフォーマンスが著しく低下します。ただし、特定のセッションキーを要求したときにのみ、プリフェッチされたユーザーデータが逆シリアル化される場合は、心配する必要はありません。

更新 この質問への回答をマークした後、AppFabric Server 1.1を使用するASP.NETには、セッションを一度に復元するのではなく、オンデマンドで復元するオプションがあることを発見しました。これは、web.configのuseBlobModeによって制御されます。

4

1 に答える 1

1

SessionSessionページが最初に読み込まれるときに、すべてのユーザー情報が読み込まれます。次に、ページの処理が完了した後、ユーザーのセッション情報をストアに保持します。

カスタムステートストアの実装については、MSDNを介してより深く理解することができます。

これは、処理に費用がかかるため、Sessionをできるだけまれに使用することになっている主な理由です(データストアとの間の転送と、ページ要求の存続期間中のデータのメモリ内の保持の両方で) )。

于 2013-02-21T04:54:11.220 に答える