Se si dispone della seguente riga, quando è necessario attendere la scadenza della cache?Durata predefinita di Cache.Insert in ASP.NET
System.Web.HttpRuntime.Cache.Insert("someKey", "Test value");
Se si dispone della seguente riga, quando è necessario attendere la scadenza della cache?Durata predefinita di Cache.Insert in ASP.NET
System.Web.HttpRuntime.Cache.Insert("someKey", "Test value");
"Mai", ovvero, non appena la memoria è in esaurimento e ASP.NET Cache pensa che abbia qualcosa di più importante da conservare.
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.
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
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