2012-09-28 13 views
7

In ASP.NET MVC habe ich die web.config verwendet, um die IIS7.5 gzip Komprimierungseinstellungen zu aktivieren und zu konfigurieren. Aber sie komprimieren Pegeleinstellungen erscheinen überhaupt keine Wirkung haben:Einstellung IIS7 gzip Komprimierungsstufe

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

Mit Komprimierungsstufe = 0 für beide Einstellungen, meine Homepage zu 9.290 Bytes gzipped (von 39.623)

Mit Komprimierungsstufe = 9 für beide Einstellungen, meine Homepage zu 9.290 Bytes (von 39.623) gzipped

(die gezippten/unkomprimiert Größen mit Fiedler zu überprüfen)

Es gibt keinen Unterschied in der Menge des Kompression - warum ist das so? Dies geschieht auf meinem lokalen Entwicklungscomputer - Windows 7. Ich habe es noch nicht auf unserem Windows 2008-Webserver versucht.

Vollkomprimierungseinstellungen 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: anscheinend ist die höchste Stufe 9. Diese Seite sagt, es 10 ist, die aber http://www.iis.net/configreference/system.webserver/httpcompression/scheme falsch sein. Das Problem ist immer noch das gleiche, wenn der Pegel unter Verwendung von 9

Antwort

2

Bitte stellen Sie dynamic compression installed

Als nächstes haben überprüfen Sie überschreiben einige compression defaultsdynamicCompressionDisableCpuUsage wird auf 90% und Kompression wieder nicht in Tritt aussehen könnte, bis Sie unter dynamicCompressionEnableCpuUsage gehen der Standardwert ist 50%. Ich würde vorschlagen, letztere zu erhöhen.

Failed request tracing wird auch in severalplaces auf SO für diese Art von Problem empfohlen, die Ihnen helfen könnte, das Problem zu erkennen.

Es gibt einige detaillierte Antworten auf die folgenden Fragen

How can I get gzip compression in IIS7 working?

Compression is not working

UPDATE:

Die Einstellung kann auf der Anwendungsebene gesperrt werden und so sollten Sie versuchen Sie den folgenden :

appcmd set config -section:urlCompression /doDynamicCompression:true 

Wenn es immer noch ein Problem ist, könnte es sich lohnen, minFileSizeForComp zu optimieren, dessen Standardwert increased with later IIS versions ist.

Wie Kommentar, versuchen Sie auch nur tun, dynamisch zu starten und lassen Sie statische, während Sie versuchen, dies zu nageln.

+0

Entschuldigung, ich habe es nicht geschafft, auf diese Frage zurückzukommen, obwohl sie mich nervt. Die dynamische Komprimierung ist installiert und funktioniert. Aber das Ändern der Komprimierungsstufe ist nicht –

+0

@JK haben Sie versucht, die statische Komprimierung auf false einzustellen und nur dynamisch zu tun? Ich habe die Antwort mit anderen Vorschlägen aktualisiert – dove

1

Wenn Ihre Startseite nicht dynamisch generiert wird, hat dynamicCompressionLevel keine Auswirkung.

Da die statische Komprimierung standardmäßig aktiviert ist, wurde wahrscheinlich bereits eine komprimierte Version Ihrer Homepage zwischengespeichert. Sie könnten versuchen, Ihre Homepage einfach zu ändern (z. B. nur ein Zeichen ändern). Es sollte dann mit der neuen Einstellung erneut komprimiert werden.

Es ist möglich, dass die statische Standardkomprimierung bereits auf Stufe 9 liegt.Wenn Sie keine Änderung sehen, können Sie auch versuchen, die statische Ebene auf 1 zu überprüfen, um festzustellen, ob es einen Unterschied gibt.

Sie müssen möglicherweise die DLL zur Verfügung zu stellen:

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

Es scheint, dynamische Komprimierungsmodul ist nicht auf dynamischen Inhalt beschränkt. Bei meinen eigenen Tests werden komprimierte statische Inhalte verwendet, vorausgesetzt, sie entsprechen der Liste der MIME-Typen und sind nicht bereits komprimiert. Es sollte als "dynamisches Kompressionsmodul" verstanden werden, das bei jeder Anfrage ausgelöst wird. Während das statische Modul ein wenig wie ein Hintergrundprozess ausgelöst wird, der an Dateien arbeitet, und beginnt, komprimierte Ausgabe nur dann zu liefern, wenn sie sie im Cache hat. –

0

Gibt es in Ihrer MVC Pipeline umfasst einen Kompressionsfilter?

Wenn ja, hat es Vorrang vor dem dynamischen IIS-Komprimierungsmodul. Einstellungen in diesem Modul haben keine Auswirkungen auf Ihre MVC-Seite, da das Modul für die dynamische IIS-Komprimierung nicht versucht, die bereits komprimierte Ausgabe zu komprimieren.