2012-09-28 20 views
7

In ASP.NET MVC ho utilizzato il web.config per abilitare e configurare le impostazioni di compressione gzip IIS7.5. Ma comprimono impostazioni di livello sembrano avere alcun effetto a tutti:Impostazione del livello di compressione gzip IIS7

<scheme name="gzip" dynamicCompressionLevel="9" staticCompressionLevel="9"/> 

Con livello di compressione = 0 per entrambe le impostazioni, la mia home page è compresso con gzip a 9.290 byte (da 39.623)

con il livello di compressione = 9 per entrambe le impostazioni, la mia home page è compressi con gzip a 9.290 byte (da 39.623)

(utilizzando Fiddler per controllare le dimensioni zip/non compressi)

non c'è differenza nella quantità di compressione - perché? Ciò si verifica sul mio computer di sviluppo locale, Windows 7. Non l'ho ancora provato sul nostro server Web di Windows 2008.

impostazioni di compressione complete in web.config:

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"> 
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" dynamicCompressionLevel="10" staticCompressionLevel="10"/> 
    <dynamicTypes> 
    <add mimeType="text/*" enabled="true"/> 
    <add mimeType="message/*" enabled="true"/> 
    <add mimeType="application/javascript" enabled="true"/> 
    <add mimeType="application/x-javascript" enabled="true"/> 
    <add mimeType="application/xml" enabled="true"/> 
    <add mimeType="*/*" enabled="false"/> 
    </dynamicTypes> 
    <staticTypes> 
    <add mimeType="text/*" enabled="true"/> 
    <add mimeType="message/*" enabled="true"/> 
    <add mimeType="application/javascript" enabled="true"/> 
    <add mimeType="application/x-javascript" enabled="true"/> 
    <add mimeType="application/xml" enabled="true"/> 
    <add mimeType="*/*" enabled="false"/> 
    </staticTypes> 
</httpCompression> 
<urlCompression doStaticCompression="true" doDynamicCompression="true"/> 

EDIT: a quanto pare il livello più alto è 9. Questa pagina dice che è 10, ma deve essere corretto http://www.iis.net/configreference/system.webserver/httpcompression/scheme. Il problema è sempre lo stesso quando si utilizza il livello 9

risposta

2

prega Assicurati di dynamic compression installed

Poi si potrebbe guardare ignorando alcuni compression defaultsdynamicCompressionDisableCpuUsage è impostato al 90% e la compressione non entreranno in gioco ancora una volta fino a quando si va sotto dynamicCompressionEnableCpuUsage il valore predefinito è 50%. Suggerirei di sollevare quest'ultimo.

Failed request tracing è inoltre consigliato in severalplaces su SO per questo tipo di problema che potrebbe aiutarti a individuare il problema.

Ci sono alcune risposte dettagliate alle seguenti domande

How can I get gzip compression in IIS7 working?

Compression is not working

UPDATE:

L'impostazione può essere bloccato a livello di applicazione e quindi si dovrebbe provare a eseguire la seguente :

appcmd set config -section:urlCompression /doDynamicCompression:true 

Se il problema persiste, potrebbe essere opportuno modificare il valore minFileSizeForComp il cui valore predefinito è increased with later IIS versions.

Come per il commento, anche provare solo a fare dinamico per avviare e lasciare fuori statico mentre stai cercando di inchiodare questo.

+0

Scusa se non sono riuscito a tornare a questa domanda anche se mi ha infastidito. La compressione dinamica è installata e funzionante. Ma cambiare il livello di compressione non è –

+0

@ JK hai provato a impostare la compressione statica su falso e fare semplicemente dinamico? Ho aggiornato la risposta con altri suggerimenti – dove

1

Se la home page non viene generata dinamicamente, quindi dynamicCompressionLevel non ha alcun effetto.

Poiché la compressione statica è abilitata per impostazione predefinita, probabilmente era già presente una versione compressa della home page memorizzata nella cache. Potresti provare a modificare semplicemente la tua home page (ad esempio, basta cambiare un carattere). Dovrebbe quindi ricomprimere con la nuova impostazione.

È possibile che la compressione statica predefinita sia già al livello 9.Se non vedi alcun cambiamento, puoi anche provare riducendo il livello statico a a 1 per vedere se c'è una differenza.

Potrebbe essere necessario fornire la DLL:

<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="9" /> 
+0

Sembra che il modulo di compressione dinamico non sia limitato al contenuto dinamico. Nei miei test, comprime il contenuto statico purché corrisponda alla lista dei tipi mime e non sia già compresso. Dovrebbe essere inteso come un "modulo di compressione dinamico", uno che viene attivato su ogni richiesta. Mentre il modulo statico viene attivato un po 'come un processo in background che lavora sui file, e inizia a servire l'output compresso solo dopo averli nella sua cache. –

0

La vostra pipeline di MVC includono un filtro di compressione?

Se sì, avrà la precedenza sul modulo di compressione dinamica IIS. Le impostazioni su questo modulo non avranno alcun effetto sulla tua pagina MVC poiché il modulo di compressione dinamica di IIS non tenterà di comprimere l'output che è già http compresso.