C# 强制所有ASP.NET缓存过期

C# 强制所有ASP.NET缓存过期,c#,asp.net,caching,C#,Asp.net,Caching,是否有一种方法或某些东西可以强制HttpContext的缓存集合中的所有项过期?尝试以下方法: var enumerator = HttpRuntime.Cache.GetEnumerator(); Dictionary<string, object> cacheItems = new Dictionary<string, object>(); while (enumerator.MoveNext()) cacheItems.Add(enumerator.Key

是否有一种方法或某些东西可以强制HttpContext的缓存集合中的所有项过期?

尝试以下方法:

var enumerator = HttpRuntime.Cache.GetEnumerator();
Dictionary<string, object> cacheItems = new Dictionary<string, object>();

while (enumerator.MoveNext())
    cacheItems.Add(enumerator.Key.ToString(), enumerator.Value);

foreach (string key in cacheItems.Keys)
    HttpRuntime.Cache.Remove(key);
var enumerator=HttpRuntime.Cache.GetEnumerator();
字典缓存项=新字典();
while(枚举数.MoveNext())
cacheItems.Add(enumerator.Key.ToString(),enumerator.Value);
foreach(cacheItems.Keys中的字符串键)
HttpRuntime.Cache.Remove(键);

更新缓存使其过期如何

protected void btnClearCache_Click(object sender, EventArgs e)
{

    var enumerator = HttpRuntime.Cache.GetEnumerator();

    while (enumerator.MoveNext())
        HttpRuntime.Cache.Insert(enumerator.Key.ToString(), enumerator.Value, 
            null, DateTime.Now , Cache.NoSlidingExpiration);
}

重新启动ASP.Net服务器:),如果它的共享主机?我相信你不能重新启动它?为什么要用字典来保存缓存项?你只需要握着钥匙;一份清单似乎可以解决这个问题,说得对。我只是在想,我需要保留这些数据,因为在枚举器上进行foreach时,您将无法删除这些数据。