- - PR -
HttpContext.Current.Cacheについて
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2009-02-17 16:29
static なオブジェクトを Session に保持させてるとか?
|
|
投稿日時: 2009-02-17 17:06
> static なオブジェクトを Session に保持させてるとか?
これ、気になりますね。 VBでModule使ってて、それをSessionに持たせてるとか。 |
|
投稿日時: 2009-02-17 18:47
>Toshi様
URLにセッション文字列は入ってないです。 >King様、どっとねっとふぁん様 StaticなオブジェクトをSessionに保持とはどういうことでしょうか? なぜSessionを使わないか思い出しました。AjaxMethodを使用するとSessionが無効になるのでCacheで対応してたのです。。だいぶ前に作ったので忘れていました、すみません。 |
|
投稿日時: 2009-02-17 19:03
静的なオブジェクトを各ユーザの Session に保持させた場合、
ユーザAの Session("AAA") ─┬→ 静的なオブジェクト ユーザBの Session("AAA") ─┤ ユーザCの Session("AAA") ─┘ と参照するからです。 逆に静的でないオブジェクトを使用する通常の Session の使い方は ユーザAの Session("AAA") ──→ 静的でないオブジェクト ユーザBの Session("AAA") ──→ 静的でないオブジェクト ユーザCの Session("AAA") ──→ 静的でないオブジェクト という感じです。 > AjaxMethodを使用するとSessionが無効になるのでCacheで対応してたのです。 AjaxMethod というのを良く知らないのですが、 これは 「仕様なのでしょうがない事」 なのか、 「なぜかわかんないけど Session 使えないな、でも Cache だったらなんか動いたからそうしてる」 なのかどちらでしょうか。 前者なら別に良いですが。 |
|
投稿日時: 2009-02-17 19:41
>King様
ありがとうございます。おっしゃる通りでした。 具体的にはCacheですが、 ○:HttpContext.Current.Cache("AAA")=Value(キーが存在しないうちからこれを行っていた) ×:HttpContext.Current.Cache.Insert(key, val, Nothing, DateTime.Now.AddHours(1), Cache.NoSlidingExpiration) ・・・ですよね?? もっと基本的な文法をもっと勉強しなければと思いました。ありがとうございます。 SessionとCacheに関してはサンプルのコードがそのようになってたのでそのまま使ってました。「なんだかわからないけど」系です。すみません。 しかし、おかげでちゃんと動作しているので大丈夫そうです。 助かりました。本当にありがとうございました!! |
|
投稿日時: 2009-02-17 19:53
○×が逆でした。すみません。
誤:HttpContext.Current.Cache("AAA")=Value(キーが存在しないうちからこれを行っていた) 正:HttpContext.Current.Cache.Insert("AAA", val, Nothing, DateTime.Now.AddHours(1), Cache.NoSlidingExpiration) |
|
投稿日時: 2009-02-17 20:54
私が伝えたい事と全然違うと思いますが・・・
> 最初Sessionで持っていたのですが、同じ現象(データが上書きされてしまう??)なのでCacheに変えてみたのですが同じでした。 という発言に対する突っ込みが > static なオブジェクトを Session に保持させてるとか? です。 Cache は何をしてもユーザ毎には作られません。 (どっとねっとふぁんさんが仰ってますよね?) > しかし、おかげでちゃんと動作しているので大丈夫そうです。 えっ!? Cache でユーザ毎にデータを持てたのですか? なぜそんな事が出来るのですか? (説明出来ないのであれば使わない方が良いです) |
|
投稿日時: 2009-02-18 10:36
ユーザ毎にキャッシュキーを持って、それで判別させたらうまく動いているようにみえる、なんでしょうね。
さて、このプログラムだとキャッシュの保存期間は作ってから1時間ですが、それを超えるようなユーザの操作が行われたとき、、、 まぁ、そういったこともふくめて「ちゃんと動いている」と検証されているのでしょう。 |