2013-06-06 7 views
8

C'è qualche strumento disponibile per la visualizzazione dei dati memorizzati nella cache HttpRunTime ..?
Abbiamo un'applicazione Asp.Net che memorizza i dati nella cache in HttpRuntime Cache. Il valore predefinito indicato era 60 secondi, ma in seguito è stato modificato in 5 minuti. Ma ritiene che i dati memorizzati nella cache si aggiornino prima di 5 minuti. Non so cosa sta succedendo sotto.

C'è qualche strumento disponibile o come possiamo vedere i dati memorizzati nella cache in HttpRunTime Cache .... con scadenza ...?
Il seguente codice viene utilizzato per aggiungere elementi alla cache.
Visualizza i dati nella cache in 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); 
    } 


Grazie.

risposta

13

La classe Cache supporta un IDictionaryEnumerator per enumerare tutte le chiavi e i valori nella cache.

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

Ma non credo che ci sia un modo ufficiale per accedere ai metadati come il tempo di scadenza.

3

Cache classe supporta un IDictionaryEnumerator per enumerare su tutte le chiavi e valori nella cache. Il seguente codice è un esempio di come eliminare ogni chiave dalla cache:

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]); 
} 
Problemi correlati