2010-05-21 10 views
8

Gibt es eine Methode oder etwas, um den Ablauf aller Einträge in der Cache-Auflistung des HttpContext zu erzwingen?Erzwingen aller ASP.NET-Cache ablaufen

+2

Starten Sie den ASP.Net-Server :) – Earlz

+0

Und was ist, wenn es Shared Hosting? Sie können es nicht neu starten, glaube ich? – Rushino

Antwort

16

versuchen, etwas wie folgt aus:

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); 
+0

Yup, das sollte funktionieren. Ich habe diesen Ansatz schon einmal benutzt. – Pandincus

+1

Warum verwenden Sie ein Wörterbuch, um die Cache-Elemente zu halten? Sie müssen nur die Schlüssel halten; es würde scheinen, eine Liste würde sich darum kümmern. –

+0

Guter Punkt. Ich dachte nur, dass ich diese Daten behalten musste, weil Sie während einer foreach auf dem Aufzähler nicht entfernen könnten. – Tejs

0

was über die Cache-Aktualisierung zu verfallen?

Verwandte Themen