IIS 7.5 ignoriert die HttpCompression-Einstellungen in web.config

8

Ich versuche, die dynamische Komprimierung für den MIME-Typ zu aktivieren application/json.

In applicationHost.config habe ich folgende Änderung vorgenommen:

<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Allow" />

Ich habe auch versucht, den Abschnitt mit dem folgenden Befehl zu entsperren:

appcmd unlock config /section:system.webserver/httpcompression

Meine web.config-Einstellungen (wie applicationHost.config, jedoch mit zusätzlichem Mimetyp):

    <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
        <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
        <staticTypes>
            <add mimeType="text/*" enabled="true" />
            <add mimeType="message/*" enabled="true" />
            <add mimeType="application/x-javascript" enabled="true" />
            <add mimeType="application/atom+xml" enabled="true" />
            <add mimeType="application/xaml+xml" enabled="true" />
            <add mimeType="*/*" enabled="false" />
        </staticTypes>
        <dynamicTypes>
            <add mimeType="text/*" enabled="true" />
            <add mimeType="message/*" enabled="true" />
            <add mimeType="application/x-javascript" enabled="true" />
            <add mimeType="application/json" enabled="true" />
            <add mimeType="*/*" enabled="false" />
        </dynamicTypes>
    </httpCompression>

Aber die Antwort wird nicht gezippt. Ich weiß, dass die Einstellungen korrekt sind, da es funktioniert, wenn ich den Mimetyp direkt zu applicationHost.config hinzufüge.

Ich habe die Ablaufverfolgung fehlgeschlagener Anforderungen aktiviert und es werden keine Fehler erzeugt.

Ben
quelle
system.webServer<urlCompression doStaticCompression="true" doDynamicCompression="true" />
Kannst
Leider machte dies keinen Unterschied. Außerdem wurde in IIS 7.5 der Standardwert für doDynamicCompressiongeändert true.
Ben
Funktionieren Ihre Änderungen in IIS Express?
Tugberk
nein, musste das gleiche tun (applicationHost.config direkt ändern)
Ben
Haben Sie dieses Problem jemals behoben?
Mario

Antworten:

3

Versuchen Sie auch, den MIME-Typ hinzuzufügen:

 <add mimeType="application/json; charset=utf-8" enabled="true" />
JeremyBeadle
quelle
1

Ich habe das gleiche Problem, dh ich versuche, IIS (in meinem Fall IIS 10) zum Gzip zu bringen application/json, habe jedoch eine Problemumgehung gefunden.

Ich habe versucht, die ApplicationHost.config sowie die web.config ohne Glück zu bearbeiten. IIS ignoriert einfach alle Komprimierungseinstellungen für .json-Daten. Es wird gerne jeden anderen Mimetyp, den Sie ihm sagen, komprimieren. Also habe ich den Mimetyp in text/jsonin web.config geändert und jetzt habe ich Antworten gzippt:

<system.webServer>
  <staticContent>
    <remove fileExtension=".json" />
    <mimeMap fileExtension=".json" mimeType="text/json" />
  </staticContent>
  <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
    <dynamicTypes>
      <add mimeType="text/json" enabled="true"/>
    </dynamicTypes>
    <staticTypes>
      <add mimeType="text/json" enabled="true"/>
    </staticTypes>
  </httpCompression>
  <urlCompression doStaticCompression="true" doDynamicCompression="true"/>
</system.webServer>

Natürlich kann das andere Dinge kaputt machen - denn jetzt hat Ihre Antwort Content-Type:text/json

Ilan
quelle
0

HttpCompression von web.config ist nur möglich, wenn Sie IIS 10 verwenden. Unter IIS 7.5 müssen Sie es unter appHost.config verwenden.

Ich habe auch dagegen gekämpft, bis ich diese Informationen in diesem Beitrag gefunden habe .

BornToCode
quelle