2009-06-08 11 views
0

これは、Webサービス内の静的キャッシュオブジェクトを初期化する正しい方法ですか?Webサービス内の静的キャッシュ

public class someclass{ 
private static Cache cache; 
static someclass() 
    { 
     cache = HttpContext.Current.Cache; 
    } 
} 

詳細:

Seems like I receive more then one cache object from webservice. It creates a new request that only lasts for the duration of that call. If I move to a different machine, it creates a new request (and I think a webservice) object that returns new cache. (because I can see two different caches being returned in the sniffer) By forcing it to be static I was hoping to have only one. However no avail. doesn't work. 

答えて

0

これは私にはよさそうだ - あなたはCurrent.Contextをラップし、このようなキャッシュ値のプロパティを公開しようとしている場合は特に:

public static class CacheManager 
{ 
    public static Boolean Foo 
    { 
     get { return (Boolean)HttpContext.Current.Cache["Foo"] } 
     set { HttpContext.Current.Cache["Foo"] = value; } 
    } 

    // etc... 
} 

あなたドン入力時に保存するだけでない限り、現在のキャッシュへのプライベート参照を作成する必要があります。また、私はクラスstaticも作ったことに気付く。

0

HTTPContext.Current.Cacheを使用して直接アクセスするのはなぜですか。

+0

ウェブサービスから複数のキャッシュオブジェクトを受け取ったようです。 この呼び出しの間だけ持続する新しい要求を作成します。別のマシンに移動すると、新しいキャッシュを返す新しいリクエスト(と私はWebサービスだと思います)を作成します。それを静的にすることによって、私は1つしか持たないことを望んでいました。しかし、役に立たない。 – ra170

+0

あなたのマシンに何か問題があります。キャッシュ内のアイテムのタイムアウト値を指定していますか?あなたのマシンはわずかなRAMしか持っていませんか? – RichardOD

関連する問題