98 votes

Comment puis-je activer la compression gzip lors de l'utilisation de MVC3 sur IIS7?

Quelqu'un sait comment faire pour activer la compression gzip dans MVC 3? Je suis l'aide de IIS7.

Google Chrome Vérification du résultat:

  1. Activer la compression gzip (4)
  2. Comprimant les ressources suivantes à l'aide de gzip pourraient réduire leur taille de transfert de deux tiers environ (~92.23 KO):
  3. /mondomaine/ pourrait sauver ~1.53 KO
  4. jquery-1.4.4.min.js pourrait sauver ~51.35 KO
  5. Cufon.js pourrait sauver ~11.89 KO
  6. Futura.js pourrait sauver ~27.46 KO

139voto

Rob Points 24505

Vous pouvez configurer la compression par l'intermédiaire de votre web.config fichier comme suit:

<system.webServer>
    <urlCompression doStaticCompression="true" doDynamicCompression="true" />
</system.webServer>

Vous pouvez trouver de la documentation de cet élément de configuration à iis.net/ConfigReference. C'est l'équivalent de:

  1. L'ouverture d'Internet Information Services (IIS Manager)
  2. Naviguer dans l'arborescence sur la gauche jusqu'à ce que vous atteignez le répertoire virtuel que vous souhaitez modifier
  3. Sélectionner le répertoire virtuel afin que le titre de la fenêtre de droite devient le nom du dit répertoire virtuel.
  4. Le choix de "Compression" en vertu de "IIS" dans le volet de droite
  5. En cochant les deux options et choisir l'option "Appliquer" sous "Actions" à l'extrême droite.

Note: (Comme l'a fait remarquer dans les commentaires, vous devez Vous assurer que l'adresse Http de la Compression Dynamique est installé ailleurs de définir doDynamicCompression="true" n'ont aucun effet. Le moyen le plus rapide de le faire est:

  1. Démarrer > Tapez optionalfeatures (c'est le moyen le plus rapide pour se rendre à la "Fonctionnalités Windows Activer ou désactiver la fenêtre")
  2. Accédez à Internet Information Services > Services World Wide Web > des Caractéristiques de Performance dans les "Fonctionnalités Windows" treeview
  3. S'assurer de la "Dynamique de la Compression de Contenu" est cochée
  4. Cliquez sur "Ok" et attendez alors que Windows installe le composant

31voto

NetProvoke Points 140

Vous pourriez le faire dans le code si vous préférez le faire. Je voudrais faire un basecontroller qui chaque contrôle hérite de et de le décorer avec cet attribut ci-dessous.

public class CompressAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {

        var encodingsAccepted = filterContext.HttpContext.Request.Headers["Accept-Encoding"];
        if (string.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);
        }
    }
}

12voto

Sinbadsoft.com Points 1510

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

Voici les instructions pour IIS sur le site de microsoft.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X