IIS 7.5 ignorant les paramètres HttpCompression dans web.config


8

J'essaie d'activer la compression dynamique pour le type mime application/json.

Dans applicationHost.config, j'ai apporté la modification suivante:

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

J'ai également essayé de déverrouiller la section avec la commande suivante:

appcmd unlock config /section:system.webserver/httpcompression

Mes paramètres web.config (identiques à applicationHost.config mais avec un mimetype supplémentaire):

    <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>

Mais la réponse n'est pas compressée. Je sais que les paramètres sont corrects car cela fonctionne si j'ajoute le type MIME directement à applicationHost.config.

J'ai activé le suivi des demandes ayant échoué et aucune erreur n'est produite.


pouvez-vous également essayer d'ajouter ceci sous le system.webServernœud:<urlCompression doStaticCompression="true" doDynamicCompression="true" />
tugberk

Malheureusement, cela n'a fait aucune différence. En outre, dans IIS 7.5, la valeur par défaut pour a doDynamicCompressionchangé en true.
Ben

vos modifications fonctionnent-elles dans IIS Express?
tugberk

non, a dû faire la même chose (changer directement applicationHost.config)
Ben

Avez-vous déjà résolu ce problème?
Mario

Réponses:


3

Essayez également d'ajouter le type MIME:

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

1

J'ai le même problème, c'est-à-dire essayer d'obtenir IIS (IIS 10 dans mon cas) pour gzip, application/jsonmais j'ai découvert une solution de contournement.

J'ai essayé de modifier le ApplicationHost.config ainsi que le web.config sans succès. IIS ignore simplement les paramètres de compression des données .json. Cependant, il compressera avec plaisir tout autre type de mime que vous lui direz de compresser. J'ai donc changé le mimetype text/jsonen web.config et maintenant j'ai des réponses compressées:

<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>

Bien sûr, cela peut casser d'autres choses - parce que maintenant votre réponse a Content-Type:text/json


0

HttpCompression à partir de web.config n'est possible que si vous utilisez IIS 10. Sur IIS 7.5, vous devrez l'utiliser sur appHost.config.

Je me battais aussi jusqu'à ce que je trouve cette information sur ce post .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.