/ / c'è comunque da rilevare quando viene sfrattata una determinata azione del controller quando si usa l'attributo outputcache - asp.net-mvc, outputcache, cache-control

è comunque in grado di rilevare quando una determinata azione del controller viene sfrattata quando si utilizza l'attributo outputcache - asp.net-mvc, outputcache, cache-control

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 № 1

Con 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.