10
votes

Application IIS manque au contenu-codage - gzip en en-tête de réponse

in Firebug L'en-tête de la demande a l'entrée suivante:
Accepter-coding: gzip, dégonfler strong>

mais non:
Encodage de contenu: gzip strong>
Dans l'en-tête de réponse. P>

Peu importe tout ce que j'ai essayé, à la suite d'un certain nombre de réponses sur des sites ainsi et d'autres, rien ne semble fonctionner! Ni des fichiers statiques ni dynamiques ne sont compressés, ou du moins s'ils ne sont pas codés de contenu - la valeur Gzip revenant dans l'en-tête de réponse. p>

Voici un exemple de mes paramètres web.config: p> xxx pré>

J'ai ignoré la fréquence de frappe
staticcompressionignorehitfrequency = "true code>" p>

J'ai confirmé que IIS compresse en fait les fichiers que je peux voir dans:
C: \ INETPUB \ TEMPUB \ IIS Fichiers compressés temporaires strong> p>

Comme spécifié ici: Configurez GZIP dans IIS 8 Windows 8
J'ai assuré que la compression statique et dynamique est activée dans les fonctionnalités de Windows> Services d'information sur Internet> Services wwws> Caractéristiques de la performance P>

J'ai également essayé l'approche de cet occurrence:
compression IIS 7.5 Crée un fichier compressé mais retourne le non compressé p>


EDIT 1: strong>

La version IIS est 10 mais j'ai également essayé cela sur IIS 8.5 P>


EDIT 2: STRUT>

J'ai maintenant également essayé divers fichiers de configuration trouvés dans ce lien: https://github.com/h5bp/server-configs-iis/ qui Fournit ce qui ressemble à des fichiers web.config de «meilleures pratiques».
non résolu fort> p>


edit 3: strong>

Basé sur l'entrée de @ Nkosi, j'ai créé une nouvelle application ASP.NET MVC et la configurée à l'aide de toutes ces options que j'ai essayées. Voici l'en-tête cru que j'ai reçu de violondler: p> xxx pré>

Comme vous pouvez le constater, aucun encodage de contenu: gzip

non résolu fort> p>


edit 4: strong>

J'ai essayé cette approche d'ajouter du code à l'événement BeguRequest dans la section Global.Axax: https://stackoverflow.com/a/ 27185575/392591
non résolu fort> p>


edit 5: strong>

Je viens donc d'essayer de faciliter la traçabilité en fonction de cette réponse: https://stackoverflow.com/a/33182525/392591 de
Aucun échec, mais j'ai remarqué au bas du fichier de trace, il y a une section appelée General_Response_headers et voici ce qu'il fournit: p> xxx pré>

et c'est pour chaque fichier de type statique. Cependant, je viens de trouver ce qui suit dans le fichier de trace: p>

8. STATIC_COMPRESSION_START  08:19:17.489 
9. STATIC_COMPRESSION_SUCCESS  08:19:17.489 
10. STATIC_COMPRESSION_END  08:19:17.489 


8 commentaires

J'utilise IIS10 et mon web.config a uniquement. Lorsque je testez des demandes de test à partir d'un navigateur (Firefox, IE11, Edge, Google Chrome) à une simple application MVC. Les demandes sont toutes Accepter-coding: gzip, déflate et les réponses renvoie Content-coding: gzip


Voir Ce . Vous devez peut-être activer la fonctionnalité GZIP sur le serveur.


@LUCASSEGERS - La fonctionnalité est définitivement activée.


J'ai le même problème, où la trace de demande défaillante montre que le fichier a été compressé OK. Avec l'en-tête de réponse correct montrant dans General_Flush_Response_Start et une taille correcte dans General_Request_end, mais le navigateur ramasse toujours le fichier complet.


Je ressens le même problème. Y avait-il déjà une réponse?


@Makkynz pas un qui a résolu mon problème non.


@Jacques Pour moi, le problème était l'antivirus sur ma machine enjoignant l'en-tête de réponse "Content-coding".


@Jacques comme Makkynz a mentionné, la raison la plus courante est l'antivirus. J'ai fait face à ce problème plusieurs fois aussi. Tout semble correctement configuré sur le scénario décrit du serveur / de la réponse, il semble donc que quelque chose décompille des fichiers compressés. Même Fiddler ne peut pas aider ici, alors qu'il semble que WireShark aide (regarder Ilke il intercepte une réponse encore plus bas que l'antivirus). Un moyen simple et simple de contourner l'antivirus est de vérifier si le contenu est gzippé lors de l'utilisation de HTTPS / SSL.


3 Réponses :


1
votes

J'utilise IIS10 et mon web.config a xxx pré>

lorsque je passe des demandes de test à partir d'un navigateur (Firefox, IE11, Edge, Google Chrome) à une application MVC simple. p>

Les demandes Tous ont Accepter-coding: gzip, déflate code> et les réponses renvoient Content-coding: gzip code>. p>

i Même testé avec violon. Composition manuellement p> xxx pré>

et obtenir le même résultat p> xxx pré>

CSS, JS et tous les autres fichiers texte sont en cours d'être comprimé. p>

Vous devrez peut-être revérifier votre configuration pour vous assurer que la compression est correctement configurée dans IIS et votre web.config. p>

mise à jour: p>

J'ai remarqué que les images n'étaient pas comprimées p>

demande p> xxx pré>

réponse p> xxx pré>

et Après que certains Google-FU ont découvert que les images sont généralement déjà comprimées, GZIP n'était donc pas appliquée. P>

System.WebServer de web.config strong> p>

  <system.webServer>
    <urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="false" />
   <validation validateIntegratedModeConfiguration="false" />
    <httpErrors errorMode="Custom" existingResponse="Replace">
      <clear />
      <error statusCode="404" responseMode="ExecuteURL" path="/NotFound" />
    </httpErrors>
    <handlers>
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <remove name="OPTIONSVerbHandler" />
      <remove name="TRACEVerbHandler" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
    <staticContent>
      <remove fileExtension=".woff" />
      <remove fileExtension=".woff2" />
      <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
      <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
    </staticContent>
  </system.webServer>


3 commentaires

J'ai mis à jour ma question, voir Modifier 3. Quel code avez-vous supprimé de votre exemple, tout ce qui pourrait changer mes résultats?


@Jacques, le reste de la configuration est httperRors, gestionnaire, statiqueContent . Je l'ai gardé minimal. Je vais l'inclure dans la mise à jour.


Ok, je ne pense pas que cela aurait un impact sur cette question. J'ai ajouté une autre mise à jour avec une autre solution que je viens d'essayer, toujours pas de joie.



2
votes

J'ai une situation similaire avec la configuration IIS et GZIP

en Firebug L'en-tête de la demande a l'entrée suivante: codage d'acceptation: gzip, dégonfler

Mais il n'y a pas de: Contenu-coding: gzip dans l'en-tête de réponse.

dans mon problème de cas était avec Protection antivirus . En réalité, la gzipping a été appliquée mais antivirus avec paramètres activés Protégez les connexions HTTP (dépend du programme de béton), une intervention de l'OMPIP vérifie et après cette réécriture des en-têtes de réponse à la volée.

note : un attribut clé Lorsque certains proxy / antivirus ont modifié vos en-têtes de réponse, c'est une fois que disparaissent et codage de transfert est ajouté avec la valeur chuntée .


2 commentaires

Merci. Vous avez sauvé ma journée. ESET Bood changeait l'en-tête de réponse et décompressez la réponse


Il semble que les programmes anti-virus interceptent les archives et l'extraient avant de le transmettre au navigateur afin que le navigateur le recevra toujours non compressé tout en étant actif. Essayez de tester sur une machine avec simplement le défenseur Windows ou l'anti-virus éteint et voyez si vous obtenez le contenu du contenu, puis



0
votes

Je viens d'avoir le même problème. La cause a fini par être le dynamiccompressionbeforecache = "vrai" code> réglage. Changer cet attribut sur "FALSE" code> Correction du problème.

<urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="false" />


0 commentaires