Condividi tramite


Cache delle risposte HTTP

di Walter Oliver

La cache di output di IIS è una funzionalità che consente di memorizzare nella cache intere risposte in memoria, anche dal contenuto dinamico. A differenza delle cache in IIS 6.0, IIS 7.0 e versioni successive hanno una cache "smart", che consente ai proprietari e agli sviluppatori del sito di configurare la cache di output per memorizzare nella cache copie separate delle risposte in base al valore della stringa di query. La cache di output è anche integrata con la cache del kernel HTTP.sys che consente di ottenere prestazioni veloci. La memorizzazione nella cache del kernel è sbloccata per impostazione predefinita. Gli sviluppatori possono sfruttare questa funzionalità configurando i profili di memorizzazione nella cache all'interno dell'applicazione. È possibile eseguire uno strumento da riga di comando che mostra il contenuto nella cache HTTP.sys.

Per visualizzare la cache delle risposte HTTP tramite netsh

  • Aprire un prompt dei comandi ed eseguire quanto segue:

netsh http show cache

Per abilitare la memorizzazione nella cache tramite il provider di PowerShell IIS

  • Aprire il prompt di PowerShell e digitare:
set-webconfigurationproperty /system.webServer/caching iis:\sites\mysite -name enabled -value true

Per aggiungere una nuova voce usando il provider di PowerShell IIS

  • Aggiungere proprietà aggiuntive all'hash -value @{...}
add-webconfigurationproperty /system.webServer/caching iis:\sites\mysite `-name profiles `-value @{extension='.tif'; policy='CacheForTimePeriod';duration='00:00:10'}

Per modificare l'impostazione per la voce di memorizzazione nella cache

  • ottenere una voce specifica:
$cacheEntry = get-webconfigurationproperty /system.webServer/caching iis:\sites\mysite -atElement @{extension='.tif'}
  • modificare l'attributo
$cacheEntry.Duration = [TimeSpan]::FromSeconds(10)
$cacheEntry.kernelCachePolicy = 'CacheForTimePeriod'
set-webconfigurationproperty /system.webServer/caching iis:\sites\mysite `
    -name profiles `
    -atElement @{extension='.tif'} `
    -value $cacheEntry