Sto tentando di memorizzare nella cache alcuni dei miei costosi per generare grafici. Quindi ho fatto questo in Web.config
:ASP.NET OutputCache varyByParam non funziona in Web.config
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<!-- 4 hours : 60 sec x 60 min x 4 hour = 14400 sec -->
<add name="ChartCacheProfile" duration="14400" varyByParam="none" />
</outputCacheProfiles>
</outputCacheSettings>
</caching>
E ho aggiunto questo nel mio Controller
:
[OutputCache(CacheProfile="ChartCacheProfile")]
public ActionResult GenerateChart()
Ma questo non funziona ..., il risultato non è ancora memorizzato nella cache e il Action
è in esecuzione sempre. Questo può richiedere fino a 1 minuto per il completamento.
Si prega di notare che l'url viene chiamato con parametri diversi ogni volta. Il parametro non è correlato al grafico generato. Questo è il motivo per cui ho inserito varyByParam="none"
.
Cosa intendi con "Non funziona"? Ulteriori chiamate all'URL vengono restituite dalla cache o inserite nell'azione? – haim770
Quando si aggiorna senza modificare alcun parametro, colpisce ancora l'azione? – haim770
Quando aggiorno senza modificare il parametro, non ha colpito l'azione (è il caching!). Quando sposto 'varyByParam =" none "' a 'Controller' invece di' Web.config' la cache funziona .. Sospetto che questo sia un bug. –