13

是否有任何工具可用于查看 HttpRunTime 缓存中的缓存数据..?
我们有一个 Asp.Net 应用程序,它将数据缓存到 HttpRuntime 缓存中。给出的默认值是 60 秒,但后来更改为 5 分钟。但是感觉缓存的数据在5分钟前就刷新了。不知道下面发生了什么。

是否有任何可用的工具或我们如何查看缓存在 HttpRunTime 缓存中的数据......以及过期时间......?
以下代码用于将项目添加到缓存。

    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);
    }


谢谢。

4

2 回答 2

19

Cache类支持IDictionaryEnumerator枚举缓存中的所有键和值。

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

但我不相信有任何官方方式可以访问元数据,例如过期时间。

于 2013-06-06T07:38:55.147 回答
7

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]);
}
于 2013-09-30T12:28:53.187 回答