2009-09-14 11 views

risposta

15

"Mai", ovvero, non appena la memoria è in esaurimento e ASP.NET Cache pensa che abbia qualcosa di più importante da conservare.

+0

Il riavvio di iis/pool di applicazioni in cui è in esecuzione il sito Web causerà la rimozione dell'oggetto dalla cache? In breve, esiste una connessione tra iis/pool di applicazioni e cache? – Nirlep

+1

Sì, tutti gli elementi della cache scompariranno se il pool di applicazioni o l'applicazione (modifica nella cartella BIN o web.config) viene riavviata, a condizione che non venga utilizzato alcun provider di cache out-of-process. Quindi in realtà è proprio quello che è: una cache. Non usarlo per nient'altro. Non puoi mai fare supposizioni su ciò che è lì dentro (solo ciò che non dovrebbe essere più lì dentro). – realMarkusSchmidt

8

Inserirà l'oggetto senza un set di scadenza esplicito. Ciò significa che l'oggetto non verrà automaticamente rimosso dalla cache, a meno che il runtime non decida di rimuovere elementi dalla cache a causa dell'elevato utilizzo della memoria.

chiamata a questo sovraccarico è lo stesso di chiamare

Cache.Insert(
    key, value, 
    null,      /*CacheDependency*/ 
    NoAbsoluteExpiration,  /*absoluteExpiration*/ 
    NoSlidingExpiration,  /*slidingExpiratioin*/ 
    CacheItemPriority.Normal, /*priority*/ 
    null      /*onRemoveCallback*/ 
); 

BTW: è possibile utilizzare .NET reflector per scoprire queste cose.

Problemi correlati