2012-02-23 6 views
3

セッションオブジェクトに項目を追加するときに個々の有効期限を設定できないのはなぜですか?ASP.NETセッションキャッシュ - 個々のアイテムの有効期限

Cache.Add()では、絶対有効期限とスライド有効期限を設定できます。 Sessionでこれを行えないのはなぜですか?

+0

このような簡潔な回答は残念ですが、Sessionはキャッシュではないためです。 – HackedByChinese

+0

可能な複製http://stackoverflow.com/questions/428634/cache-v-s-session – HackedByChinese

+0

しかし、私はユーザーごとに有効期限があるものを保存したいとします。それは完全に有効なシナリオではありませんか?これを達成する最良の方法は何でしょうか? –

答えて

5

セッションはキャッシュではありません。セッションは、Web通信がステートレスであるという事実を乗り越える方法です。セッションごとに「バケット」が設定されているため、セッションに関連付けることができます。ユーザーのセッションがタイムアウトするとタイムアウトします(通常、最後のページヒット後20分後)。

ユーザーごとにも期限切れのものが必要な場合は、セッションの代わりにキャッシュを使用する必要があります。あなたはオートマチック砂糖を使用することができ、ユーザーによって異なります。または、.NETキャッシュオブジェクトの1つの上に独自のカスタム抽象を作成できます(私はローカルキャッシュにMemoryCacheを使用します)。私は「カスタムコードを使用する」とは言いませんが、AppFabricのキャッシュ、nCache(非常にウェブフレンドリー)、memcachedのような分散キャッシュに一日持ち込むことができるように、 。

関連する問題