J'ai du mal à faire en sorte que IIS 7 compresse correctement un résultat JSON d'ASP.NET MVC. J'ai activé la compression statique et dynamique dans IIS. Je peux vérifier avec Fiddler que le texte normal/html et les dossiers semblables sont compressés. En regardant la requête, l'en-tête gzip accept-encoding est présent. La réponse a le type mime "application/json", mais n'est pas compressé.Comment compresser un résultat JSON à partir d'ASP.NET MVC avec IIS 7.5
J'ai identifié que le problème semble être lié au MimeType. Quand j'inclus mimeType="*/*"
, je peux voir que la réponse est gzippée correctement. Comment puis-je obtenir IIS pour compresser sans utiliser un caractère générique mimeType? Je suppose que ce problème a quelque chose à voir avec la façon dont ASP.NET MVC génère des en-têtes de type de contenu.
L'utilisation du processeur est bien inférieure au seuil de limitation dynamique. Lorsque j'examine les journaux de trace d'IIS, je peux voir qu'il ne parvient pas à compresser en raison de ne pas trouver un type mime correspondant.
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files" noCompressionForProxies="false">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/json" enabled="true" />
</dynamicTypes>
<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="application/json" enabled="true" />
</staticTypes>
</httpCompression>
Je ne peux pas utiliser un type mIME générique car je rencontre un problème étrange avec IE8 - il semble avoir du mal à télécharger un fichier .zip lorsque la requête est gzippée par IIS. Firefox 3.5 n'est pas affecté. –