2017-04-24 6 views
0

シナリオ: 我々は、紺碧のredisセッションプロバイダを使用しています。ページが最初に読み込まれると、外部APIからデータが取得され、redishセッションで保存されます。out-proc azure redisセッションはどのように機能を取得しますか?

同じセッションデータは、ユーザーセッションで異なるページとコンポーネントを介して取得されます。問題は次のとおりです。

  1. アプリケーションはセッションデータを1回だけ取得し、ローカルにHTTPの現在のコンテキストを保存しますか?それとも赤い店に行くたびに?

  2. Get操作でデータを暗号化して解読するとどうなりますか?

ありがとう。

答えて

1

アプリケーションは、あなたがそれを求める...一部を書いために、あなたは辞書のキーのロックが解除されるまで待たなければならないのRedis毎回からセッションデータを取得します。 https://msdn.microsoft.com/en-us/library/aa479041.aspx#aspnetsessionstate_topic3あなたはページのクレームがtrueに@PageディレクティブのにEnableSessionState属性を設定することにより、セッション状態への書き込みアクセスをこの

のためのasp.netを使用しているを想定してご覧ください。ただし、ページは、EnableSessionState属性がReadOnlyに設定されている場合など、セッション状態の読み取り専用アクセス許可を持つこともできます。この場合、モジュールは、そのページの要求が終了するまで、セッションのリーダーロックを保持します。結果として、同時読み取りが行われる可能性があります。

ページリクエストでリーダーロックが設定されている場合、同じセッションで同時に処理されるリクエストはセッション状態を更新できませんが、少なくとも読み取りは許可されます。これは、セッションの読み取り専用要求が処理されているときに、読み取り専用の要求が完全なアクセスを必要とする要求よりも高い優先度を持つことを意味します。ページ要求がセッション状態にライターロックを設定した場合、他のすべてのページは、読み書きが必要かどうかにかかわらずブロックされます。例えば、2つのフレームがセッションに書き込もうとすると、そのうちの1つはセッションが終了するまで待たなければならない。

StackExchange.RedisだけHttpSessionStateモジュールのラッパー(または抽象)である

関連する問題