ho questo codice:
[AcceptVerbs(HttpVerbs.Get)]
[OutputCache(Duration = 86400, VaryByParam = "*")]
public ActionResult GetData(MyParams myParams)
{
return GetDataEx(myParams);
}
memorizzare nella cache un gruppo di Json sul mio server web.
Vedo su questa pagina, dice
Non è garantito che il contenuto verrà memorizzato nella cache per il periodo di tempo specificato. Quando le risorse di memoria si esauriscono, la cache inizia a eliminare automaticamente il contenuto.
c'è un modo per ottenere una richiamata specifica quandoquesto elemento viene espulso dalla cache a causa dell'esaurimento delle risorse di memoria. Non vedo che la cache funzioni correttamente ma la mia ipotesi è che sto esaurendo la memoria, ma se avessi questo callback, potrei dirlo con certezza.
risposte:
1 per risposta № 1Con la cache dell'output di risposta non è possibileessere avvisato alla scadenza del contenuto. E a dire il vero non dovresti preoccupartene, se il contenuto è scaduto, l'azione del controller verrà semplicemente colpita e il nuovo contenuto verrà nuovamente memorizzato nella cache. Notare inoltre che, a seconda della posizione in cui è stata configurata questa cache di output per essere archiviata, se è downstream su server proxy intermedi o browser client, la scadenza della cache è totalmente fuori dal tuo controllo.
Se si memorizzano manualmente nella cache oggetti nella cache ASP.NET, è possibile registrare a CacheItemRemovedCallback che verrà eseguito quando l'elemento viene rimosso, ma ciò non si applica alla memorizzazione nella cache dell'output di risposta, che è ciò che si sta utilizzando qui.