2013-06-06 2 views
8

HttpRunTimeキャッシュにキャッシュされたデータを表示するためのツールはありますか?
HttpRuntime CacheにデータをキャッシュするAsp.Netアプリケーションがあります。指定されたデフォルト値は60秒でしたが、後で5分に変更されました。しかし、キャッシュされたデータが5分前にリフレッシュされていると感じます。下に何が起こっているのか分からない。

利用可能なツールはありますか、またはHttpRunTime Cache ...にキャッシュされたデータが有効期限付きでどのように表示されるのでしょうか?
次のコードは、アイテムをキャッシュに追加するために使用しています。
System.Web.HttpRuntime.Cacheにキャッシュされたデータを表示する

public static void Add(string pName, object pValue) 
    { 
    int cacheExpiry= int.TryParse(System.Configuration.ConfigurationManager.AppSettings["CacheExpirationInSec"], out cacheExpiry)?cacheExpiry:60; 
    System.Web.HttpRuntime.Cache.Add(pName, pValue, null, DateTime.Now.AddSeconds(cacheExpiry), TimeSpan.Zero, System.Web.Caching.CacheItemPriority.High, null); 
    } 


ありがとうございました。

答えて

13

Cacheクラスは、IDictionaryEnumeratorをサポートし、キャッシュ内のすべてのキーと値を列挙します。

IDictionaryEnumerator enumerator = System.Web.HttpRuntime.Cache.GetEnumerator(); 
while (enumerator.MoveNext()) 
{ 
    string key = (string)enumerator.Key; 
    object value = enumerator.Value; 
    ... 
} 

しかし、有効期限などのメタデータにアクセスする正式な方法はありません。

3

Cacheクラスは、IDictionaryEnumeratorをサポートし、キャッシュ内のすべてのキーと値を列挙します。以下のコードは、すべてのキーをキャッシュから削除する方法の例です:

List<string> keys = new List<string>(); 

// retrieve application Cache enumerator 
IDictionaryEnumerator enumerator = System.Web.HttpRuntime.Cache.GetEnumerator(); 

// copy all keys that currently exist in Cache 
while (enumerator.MoveNext()) 
{ 
    keys.Add(enumerator.Key.ToString()); 
} 

// delete every key from cache 
for (int i = 0; i < keys.Count; i++) 
{ 
    HttpRuntime.Cache.Remove(keys[i]); 
} 
関連する問題