Comment activer la compression gzip lors de l’utilisation de MVC3 sur IIS7?

Est-ce que quelqu’un sait comment activer la compression gzip dans MVC 3? J’utilise IIS7.

Résultat de Google Chrome Audit:

  1. Activer la compression gzip (4)
  2. Compresser les ressources suivantes avec gzip pourrait réduire leur taille de transfert d’environ deux tiers (~ 92,23 Ko):
  3. / mydomain / pourrait économiser ~ 1.53Ko
  4. jquery-1.4.4.min.js pourrait économiser environ 51,35 Ko
  5. Cufon.js pourrait sauver environ 11,89 Ko
  6. Futura.js pourrait économiser environ 27.46KB

Vous pouvez configurer la compression via votre fichier web.config comme suit:

    

Vous pouvez trouver la documentation de cet élément de configuration sur iis.net/ConfigReference . Ceci est l’équivalent de:

  1. Ouverture d’Internet Information Services (Gestionnaire IIS)
  2. Naviguer dans l’arborescence à gauche jusqu’à atteindre le répertoire virtuel que vous souhaitez modifier
  3. Sélectionner le répertoire virtuel approprié pour que le titre du volet droit devienne le nom dudit répertoire virtuel.
  4. Choisir “Compression” sous “IIS” dans le volet de droite
  5. En cochant les deux options et en choisissant “Appliquer” sous “Actions” à l’extrême droite.

Remarque: (Comme indiqué dans les commentaires) Vous devez vous assurer que la compression dynamic doDynamicCompression="true" est installée, sinon la valeur de doDynamicCompression="true" n’aura aucun effet. Le moyen le plus rapide est de:

  1. Démarrer> Tapez des fonctionnalités optionalfeatures (c’est la manière la plus rapide d’accéder à la fenêtre “Activer ou désactiver des fonctionnalités Windows”)
  2. Accédez à Internet Information Services> Services World Wide Web> Fonctionnalités de performance dans l’arborescence “Fonctionnalités Windows”.
  3. Assurez-vous que la “compression du contenu dynamic” est cochée
  4. Cliquez sur “Ok” et attendez que Windows installe le composant

Vous pouvez le faire en code si vous préférez le faire. Je ferais un contrôleur de base dont chaque contrôle hérite et le décore avec cet atsortingbut ci-dessous.

 public class CompressAtsortingbute : ActionFilterAtsortingbute { public override void OnActionExecuting(ActionExecutingContext filterContext) { var encodingsAccepted = filterContext.HttpContext.Request.Headers["Accept-Encoding"]; if (ssortingng.IsNullOrEmpty(encodingsAccepted)) return; encodingsAccepted = encodingsAccepted.ToLowerInvariant(); var response = filterContext.HttpContext.Response; if (encodingsAccepted.Contains("deflate")) { response.AppendHeader("Content-encoding", "deflate"); response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress); } else if (encodingsAccepted.Contains("gzip")) { response.AppendHeader("Content-encoding", "gzip"); response.Filter = new GZipStream(response.Filter, CompressionMode.Compress); } } } 

La compression est activée / désactivée au niveau du serveur. Voir le module de compression IIS dans la console de gestion iis.

Voici les instructions pour IIS à partir du site Microsoft.