Partager via


Compression <HTTP httpCompression>

Aperçu

L’élément <httpCompression> spécifie les paramètres de compression HTTP pour Internet Information Services (IIS) 7. La compression HTTP peut fournir des temps de transmission plus rapides entre IIS et les navigateurs clients qui peuvent accepter des fichiers compressés.

Remarque

Un client HTTP doit lancer la communication pour le contenu compressé en envoyant l’en-tête HTTP Accept-encoding approprié. Si un client n’est pas capable de compression HTTP, il ne transmet pas cet en-tête et IIS 7 retourne toujours du contenu non compressé.

Il existe deux types de compression différents que IIS 7 utilise :

  • Compression statique :

    IIS 7 met en cache le contenu statique compressé dans le chemin spécifié par l’attribut de répertoire , ce qui augmente les performances de compression en éliminant la nécessité de recompresser le contenu déjà compressé. Une fois que IIS 7 a compressé un fichier, les demandes suivantes reçoivent la copie compressée du fichier à partir du répertoire du cache.

    Les attributs staticCompressionEnableCpuUsage et staticCompressionDisableCpuUsage spécifient quand IIS 7 compresse les fichiers statiques en fonction de l’utilisation du processeur.

    Vous devez utiliser la compression statique avec des fichiers qui ne changent généralement pas, tels que les fichiers HTML (*.html, *.htm), les fichiers texte (*.txt), les documents Microsoft Office (*.doc, *.xls, *.ppt), etc. La taille de ces fichiers peut être réduite par compression, ce qui réduit les temps de téléchargement des demandes clientes et réduit la bande passante sur le serveur.

    Remarque

    Les fichiers image tels que *.jpg et *.png fichiers sont également des fichiers statiques, mais ils ne bénéficient généralement pas de la compression HTTP, car ces fichiers image sont déjà compressés.

  • Compression dynamique :

    Contrairement à la compression statique, IIS 7 effectue une compression dynamique chaque fois qu’un client demande le contenu, mais que la version compressée n’est pas mise en cache sur le disque. Cette modification est apportée en raison de la principale différence entre le contenu statique et le contenu dynamique. Le contenu statique ne change pas. Toutefois, le contenu dynamique est généralement du contenu créé par une application et change donc souvent, comme les pages Active Server (ASP) ou le contenu ASP.NET. Étant donné que le contenu dynamique doit souvent changer, IIS 7 ne le met pas en cache.

    Les attributs dynamicCompressionEnableCpuUsage et dynamicCompressionDisableCpuUsage spécifient quand IIS 7 compresse les fichiers dynamiques en fonction de l’utilisation du processeur.

IIS 7 prend en charge deux schémas de compression standard différents :

Chacun de ces deux schémas de compression peut être activé à l’aide de l’élément <schemes> de l’élément <httpCompression> .

Remarque

Bien que l’élément <httpCompression> spécifie les paramètres de compression HTTP pour Internet Information Services (IIS) 7, l’élément urlCompression> spécifie si la< compression est activée pour un espace de noms d’URL.

Compatibilité

Version Remarques
IIS 10.0 L’élément <httpCompression> n’a pas été modifié dans IIS 10.0.
IIS 8.5 L’attribut staticCompressionIgnoreHitFrequency a été ajouté dans IIS 8.5.
IIS 8.0 L’élément <httpCompression> n’a pas été modifié dans IIS 8.0.
IIS 7.5 Dans IIS 7.5, la valeur par défaut de l’attribut minFileSizeForComp a été modifiée et l’attribut dynamicCompressionBufferLimit a été ajouté.
IIS 7.0 L’élément <httpCompression> a été introduit dans IIS 7.0.
IIS 6.0 L’élément <httpCompression> remplace les propriétés de métabase IIS 6.0 suivantes :
  • HcCacheControlHeader
  • HcCompressionDirectory
  • HcDoDiskSpaceLimiting
  • HcExpiresHeader
  • HcMaxDiskSpaceUsage
  • HcMinFileSizeForComp
  • HcNoCompressionForHttp10
  • HcNoCompressionForProxies
  • HcNoCompressionForRange
  • HcSendCacheHeaders

Installation

La compression HTTP est généralement disponible lors de l’installation par défaut d’IIS 7 et versions ultérieures. Toutefois, seule la compression statique est installée par défaut. Pour installer la compression statique ou dynamique, procédez comme suit.

Windows Server 2012 ou Windows Server 2012 R2

  1. Dans la barre des tâches, cliquez sur Gestionnaire de serveur.
  2. Dans le Gestionnaire de serveur, cliquez sur le menu Gérer , puis sur Ajouter des rôles et des fonctionnalités.
  3. Dans l’Assistant Ajout de rôles et de fonctionnalités , cliquez sur Suivant. Sélectionnez le type d’installation, puis cliquez sur Suivant. Sélectionnez le serveur de destination, puis cliquez sur Suivant.
  4. Dans la page Rôles de serveur , développez Serveur web (IIS), développez Serveur web, développez Performances, puis sélectionnez Compression de contenu statique et/ou Compression de contenu dynamique. Cliquez sur Suivant.
    Capture d’écran du nœud Serveur web et performances avec compression de contenu statique sélectionnée et compression de contenu dynamique mise en surbrillance. .
  5. Dans la page Sélectionner des fonctionnalités , cliquez sur Suivant.
  6. Dans la page Confirmer les sélections d’installation , cliquez sur Installer.
  7. Dans la page Résultats , cliquez sur Fermer.

Windows 8 ou Windows 8.1

  1. Dans l’écran de démarrage , déplacez le pointeur vers le coin inférieur gauche, cliquez avec le bouton droit sur le bouton Démarrer , puis cliquez sur Panneau de configuration.
  2. Dans le Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver les fonctionnalités Windows.
  3. Développez Internet Information Services, développez World Wide Web Services, développez Fonctionnalités de performances, puis sélectionnez Compression de contenu dynamique et/ou Compression de contenu statique.
    Capture d’écran du volet Fonctionnalités world wide web et performances développé montrant la compression de contenu dynamique et la compression de contenu statique sélectionnée.
  4. Cliquez sur OK.
  5. Cliquez sur Fermer.

Windows Server 2008 ou Windows Server 2008 R2

  1. Dans la barre des tâches, cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire de serveur.
  2. Dans le volet hiérarchie du Gestionnaire de serveur, développez Rôles, puis cliquez sur Serveur web (IIS).
  3. Dans le volet Serveur web (IIS), faites défiler jusqu’à la section Services de rôle , puis cliquez sur Ajouter des services de rôle.
  4. Dans la page Sélectionner les services de rôle de l’Assistant Ajouter des services de rôle, sélectionnez Compression de contenudynamique si vous souhaitez installer la compression dynamique et la compression de contenu statique si vous souhaitez installer la compression statique, puis cliquez sur Suivant.
    Capture d’écran du nœud Performances développé dans la page Ajouter des services de rôle avec compression de contenu dynamique mise en surbrillance.
  5. Dans la page Confirmer les sélections d’installation , cliquez sur Installer.
  6. Dans la page Résultats , cliquez sur Fermer.

Windows Vista ou Windows 7

  1. Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
  2. Dans le Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver les fonctionnalités Windows.
  3. Développez Internet Information Services, puis World Wide Web Services, puis Performance Features.
  4. Sélectionnez La compression http dynamique si vous souhaitez installer la compression dynamique et la compression de contenu statique si vous souhaitez installer la compression statique.
    Capture d’écran du nœud Fonctionnalités de performances développé et dynamique de compression H T T P sélectionnée.
  5. Cliquez sur OK.

Procédure

Comment activer ou désactiver la compression statique et dynamique pour un site ou une application

  1. Ouvrez le Gestionnaire iis (Internet Information Services) :

    • Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :

      • Dans la barre des tâches, cliquez sur Gestionnaire de serveur, sur Outils, puis sur Gestionnaire des services Internet (IIS).
    • Si vous utilisez Windows 8 ou Windows 8.1 :

      • Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
      • Cliquez sur Outils d’administration, puis double-cliquez sur Le Gestionnaire des services Internet (IIS).
    • Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :

      • Dans la barre des tâches, cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire des services Internet (IIS).
    • Si vous utilisez Windows Vista ou Windows 7 :

      • Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
      • Double-cliquez sur Outils d’administration, puis double-cliquez sur Le Gestionnaire des services Internet (IIS).
  2. Dans le volet Connexions , accédez à la connexion, au site, à l’application ou au répertoire pour lequel vous souhaitez activer la compression.

  3. Dans le volet Accueil , double-cliquez sur Compression.
    Capture d’écran de la page d’accueil du site web par défaut montrant la compression sélectionnée.

  4. Dans le volet Compression , cochez les cases pour activer la compression statique ou dynamique, ou supprimez les coches pour désactiver la compression statique ou dynamique.
    Capture d’écran montrant le volet Compression avec Activer la compression de contenu dynamique et activer les zones de compression de contenu statique sélectionnées.

  5. Une fois que vous avez effectué les étapes ci-dessus, cliquez sur Appliquer dans le volet Actions .

Comment activer ou désactiver la compression statique et dynamique pour un serveur

  1. Ouvrez le Gestionnaire iis (Internet Information Services) :

    • Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :

      • Dans la barre des tâches, cliquez sur Gestionnaire de serveur, sur Outils, puis sur Gestionnaire des services Internet (IIS).
    • Si vous utilisez Windows 8 ou Windows 8.1 :

      • Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
      • Cliquez sur Outils d’administration, puis double-cliquez sur Le Gestionnaire des services Internet (IIS).
    • Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :

      • Dans la barre des tâches, cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire des services Internet (IIS).
    • Si vous utilisez Windows Vista ou Windows 7 :

      • Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
      • Double-cliquez sur Outils d’administration, puis double-cliquez sur Le Gestionnaire des services Internet (IIS).
  2. Dans le volet Connexions , mettez en surbrillance le nom de votre serveur.

  3. Dans le volet Accueil du serveur, double-cliquez sur Compression.
    Capture d’écran montrant le volet Accueil des serveurs avec compression mise en surbrillance.

  4. Dans le volet Compression , cochez les cases pour activer la compression statique ou dynamique, ou supprimez les coches pour désactiver la compression statique ou dynamique.
    Capture d’écran de la page Compression montrant les deux zones pour activer la compression de contenu dynamique et activer la compression de contenu statique sélectionnée.

  5. Une fois que vous avez effectué les étapes ci-dessus, cliquez sur Appliquer dans le volet Actions .

Comment configurer staticCompressionIgnoreHitFrequency

  1. Ouvrez le Gestionnaire iis (Internet Information Services) :

    • Si vous utilisez Windows Server 2012 R2 :

      • Dans la barre des tâches, cliquez sur Gestionnaire de serveur, sur Outils, puis sur Gestionnaire des services Internet (IIS).
    • Si vous utilisez Windows 8.1 :

      • Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
      • Cliquez sur Outils d’administration, puis double-cliquez sur Le Gestionnaire des services Internet (IIS).
  2. Dans le volet Connexions , sélectionnez le serveur, puis double-cliquez sur Éditeur de configuration.

  3. Dans l’Éditeur de configuration, pour la section, sélectionnez system.webServer, puis httpCompression.

  4. Pour staticCompressionIgnoreHitFrequency, entrez True pour désactiver le comportement qu’un fichier statique est compressé uniquement s’il est atteint un certain nombre de fois au cours d’une période, ou entrez False pour activer le comportement.
    Capture d’écran montrant la page Éditeur de configuration avec la valeur True entrée pour l’option Compression statique Ignorer la fréquence d’accès.

  5. Dans le volet Actions, cliquez sur Appliquer.

Paramétrage

Attributs

Ces attributs ne peuvent être configurés qu’au niveau du serveur. La configuration au niveau d’un site ou inférieure est ignorée.

Attribut Description
cacheControlHeader Attribut de chaîne facultatif.

Spécifie la directive que IIS ajoute à l’en-tête Cache-Control qui remplace l’en-tête HTTP Expire. Cet attribut garantit que les anciens clients et serveurs proxy ne tentent pas de mettre en cache les fichiers compressés. Pour activer ce paramètre, vous devez définir l’attribut sendCacheHeaders sur true. Le service WWW doit être redémarré avant que les modifications apportées à cette propriété prennent effet.

La valeur par défaut est max-age=86400.
directory Attribut de chaîne facultatif.

Spécifie le répertoire dans lequel les versions compressées de fichiers statiques sont temporairement stockées et mises en cache.

Note: Dans IIS 6.0, le chemin d’accès au répertoire par défaut pour les fichiers compressés temporaires IIS était %windir%\IIS Temporary Compressed Files.

La valeur par défaut est %SystemDrive%\inetpub\temp\IIS Temporary Compressed Files.
doDiskSpaceLimiting Attribut booléen facultatif.

Spécifie si une limite existe pour la quantité d’espace disque que tous les fichiers compressés, stockés dans le répertoire de compression spécifié par l’attribut de répertoire, peuvent occuper.

La valeur par défaut est true.
dynamicCompressionBufferLimit Attribut uint facultatif.

Spécifie la quantité maximale de données compressées dynamiquement que IIS met en mémoire tampon avant de vider la mémoire tampon sur un client. Cela réduit la quantité de mémoire nécessaire pour effectuer une compression dynamique.

Note: Cet attribut a été ajouté dans IIS 7.5.

La valeur par défaut est 65536.
dynamicCompressionDisableCpuUsage Attribut uint facultatif.

Spécifie le pourcentage d’utilisation du processeur à laquelle la compression dynamique sera désactivée.

Note: Cet attribut agit comme une limite de processeur supérieure à laquelle la compression dynamique est désactivée. Lorsque l’utilisation du processeur est inférieure à la valeur spécifiée dans l’attribut dynamicCompressionEnableCpuUsage , la compression dynamique est réactivée.

La valeur par défaut est 90.
dynamicCompressionEnableCpuUsage Attribut uint facultatif.

Spécifie le pourcentage d’utilisation du processeur sous laquelle la compression dynamique sera activée. La valeur doit être comprise entre 0 et 100. L’utilisation moyenne du processeur est calculée toutes les 30 secondes.

Note: Cet attribut agit comme une limite d’UC inférieure à laquelle la compression dynamique est activée. Lorsque l’utilisation du processeur augmente au-dessus de la valeur spécifiée dans l’attribut dynamicCompressionDisableCpuUsage , la compression dynamique est désactivée.

La valeur par défaut est 50.
expiresHeader Attribut de chaîne facultatif.

Spécifie le contenu de l’en-tête HTTP Expire qui est envoyé avec tous les fichiers compressés demandés, ainsi que l’en-tête Cache-Control spécifié dans l’attribut cacheControlHeader . Cette combinaison d’en-têtes garantit que les anciens clients et les serveurs proxy n’essaient pas de mettre en cache les fichiers compressés. Pour activer ce paramètre, vous devez définir l’attribut sendCacheHeaders sur true. Le service de publication World Wide Web (service WWW) doit être redémarré avant que les modifications apportées à cette propriété prennent effet.

La valeur par défaut est Wed, 01 Jan 1997 12:00:00 GMT.
maxDiskSpaceUsage Attribut uint facultatif.

Spécifie le nombre de mégaoctets d’espace disque que les fichiers compressés peuvent occuper dans le répertoire de compression. Lorsque l’espace utilisé par les fichiers compressés dépasse 90 % de la valeur de cet attribut, IIS supprime les fichiers les moins récemment utilisés jusqu’à ce qu’un niveau d’utilisation de 90 % soit atteint.

Note: Dans IIS 6.0, cette limite a été exprimée en octets ; dans IIS 7, il est exprimé en mégaoctets. Dans IIS 7, la limite est appliquée par pool d’applications.

La valeur par défaut est 100.
minFileSizeForComp Attribut uint facultatif.

Spécifie le nombre minimal d’octets qu’un fichier doit contenir afin d’utiliser la compression à la demande.

La valeur par défaut pour IIS 7.5 est 2700; pour IIS 7.0, la valeur par défaut était 256.
noCompressionForHttp10 Attribut booléen facultatif.

Spécifie si la compression est désactivée pour les requêtes qui contiennent un numéro de version HTTP 1.0.

Note: Certains clients HTTP 1.0 ne gèrent pas correctement la mise en cache des objets compressés. Vous pouvez utiliser ce paramètre pour éviter de renvoyer un fichier compressé à un client qui ne peut pas le décompresser.

La valeur par défaut est true.
noCompressionForProxies Attribut booléen facultatif.

Spécifie si la réponse HTTP 1.1 est désactivée pour les demandes de compression qui transitent par des serveurs proxy.

Note: Certains serveurs proxy HTTP ne gèrent pas correctement la mise en cache des objets compressés. Vous pouvez utiliser ce paramètre pour éviter de renvoyer un fichier compressé à un serveur proxy qui ne peut pas le décompresser.

La valeur par défaut est true.
noCompressionForRange Attribut booléen facultatif.

Spécifie si la compression est désactivée pour les requêtes HTTP qui incluent l’en-tête Range.

Note: Certains clients ne peuvent pas gérer correctement les demandes de plage. Vous pouvez utiliser ce paramètre pour éviter de renvoyer un fichier compressé à un client qui ne peut pas le décompresser.

La valeur par défaut est true.
sendCacheHeaders Attribut booléen facultatif.

Spécifie si les en-têtes configurés dans cacheControlHeader et expirentheader sont envoyés avec chaque réponse compressée.

La valeur par défaut est false.
staticCompressionDisableCpuUsage Attribut uint facultatif.

Spécifie le pourcentage d’utilisation du processeur à laquelle la compression statique est désactivée. La valeur doit être comprise entre 0 et 100. L’utilisation moyenne du processeur est calculée toutes les 30 secondes.

Note: Cette propriété agit comme une limite d’UC supérieure à laquelle la compression statique est désactivée. Lorsque l’utilisation du processeur tombe sous la valeur spécifiée dans l’attribut staticCompressionEnableCpuUsage , la compression statique est réenable.

La valeur par défaut est 100.
staticCompressionEnableCpuUsage Attribut uint facultatif.

Spécifie le pourcentage d’utilisation du processeur au niveau duquel la compression statique est activée. La valeur doit être comprise entre 0 et 100. L’utilisation moyenne du processeur est calculée toutes les 30 secondes.

Note: Cette propriété agit comme une limite d’UC inférieure à laquelle la compression statique est activée. Lorsque l’utilisation du processeur augmente au-dessus de la valeur spécifiée dans l’attribut staticCompressionDisableCpuUsage , la compression statique est désactivée.

La valeur par défaut est 50.
staticCompressionIgnoreHitFrequency Attribut booléen facultatif.

Si la valeur est True, désactive le comportement qu’un fichier statique est compressé uniquement s’il est atteint un certain nombre de fois dans une période donnée. Vous pouvez rencontrer des circonstances dans lesquelles vous souhaitez que le contenu statique soit toujours compressé pour réduire l’utilisation de la bande passante. Par exemple, vous pouvez toujours compresser du contenu statique lorsqu’un système utilise un équilibreur de charge avec la mise en cache de périphérie entre un serveur Web et le demandeur, ce qui entraîne le cache d’un fichier non compressé sur le serveur edge, car les requêtes suivantes n’atteignent pas le serveur Web.

Si le comportement n’est pas désactivé, un taux d’accès supérieur ou égal à deux accès en 10 secondes entraîne la compression du contenu statique. Un taux d’accès moindre entraînerait la compression du contenu.

La valeur par défaut est False.

Éléments enfants

Élément Description
scheme Élément facultatif.

Spécifie le schéma de compression (Gzip ou Deflate) utilisé par IIS pour compresser les demandes du client. Cet élément ne peut être configuré qu’au niveau du serveur.
dynamicTypes Élément facultatif.

Spécifie les paramètres de configuration pour la compression dynamique. Pour les versions IIS antérieures à IIS 10.0, ne peuvent être configurées qu’au niveau du serveur. Pour IIS 10.0 et versions ultérieures, vous pouvez également être configuré au niveau du site.
staticTypes Élément facultatif.

Spécifie les paramètres de configuration pour la compression statique. Pour IIS 10.0 et versions ultérieures, ne peut être configuré qu’au niveau du site. Pour les versions IIS antérieures à IIS 10.0, ne peuvent être configurées qu’au niveau du serveur. Pour IIS 10.0 et versions ultérieures, vous pouvez également être configuré au niveau du site.

Exemple de configuration

L’élément par défaut <httpCompression> suivant est configuré dans le fichier ApplicationHost.config dans IIS 7. Cette section de configuration hérite des paramètres de configuration par défaut, sauf si vous utilisez l’élément <clear> .

<httpCompression
      directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
   <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
   <dynamicTypes>
      <add mimeType="text/*" enabled="true" />
      <add mimeType="message/*" enabled="true" />
      <add mimeType="application/javascript" enabled="true" />
      <add mimeType="*/*" enabled="false" />
   </dynamicTypes>
   <staticTypes>
      <add mimeType="text/*" enabled="true" />
      <add mimeType="message/*" enabled="true" />
      <add mimeType="application/javascript" enabled="true" />
      <add mimeType="*/*" enabled="false" />
   </staticTypes>
</httpCompression>

Exemple de code

Les exemples de code suivants ajoutent les types MIME pour les documents Office 2003 à la liste des types de compression dynamique.

Remarque

Les documents Office 2007 utilisent la compression intégrée. Ils n’ont donc pas besoin d’être compressés par IIS.

AppCmd.exe

appcmd.exe set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/msword',enabled='True']" /commit:apphost

appcmd.exe set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/vnd.ms-powerpoint',enabled='True']" /commit:apphost

appcmd.exe set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/vnd.ms-excel',enabled='True']" /commit:apphost

Remarque

Vous devez être sûr de définir le paramètre apphostde validation lorsque vous utilisez AppCmd.exe pour configurer ces paramètres. Cela valide les paramètres de configuration dans la section d’emplacement appropriée dans le fichier ApplicationHost.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection httpCompressionSection = config.GetSection("system.webServer/httpCompression");
         ConfigurationElementCollection dynamicTypesCollection = httpCompressionSection.GetCollection("dynamicTypes");

         ConfigurationElement addElement = dynamicTypesCollection.CreateElement("add");
         addElement["mimeType"] = @"application/msword";
         addElement["enabled"] = true;
         dynamicTypesCollection.Add(addElement);

         ConfigurationElement addElement1 = dynamicTypesCollection.CreateElement("add");
         addElement1["mimeType"] = @"application/vnd.ms-powerpoint";
         addElement1["enabled"] = true;
         dynamicTypesCollection.Add(addElement1);

         ConfigurationElement addElement2 = dynamicTypesCollection.CreateElement("add");
         addElement2["mimeType"] = @"application/vnd.ms-excel";
         addElement2["enabled"] = true;
         dynamicTypesCollection.Add(addElement2);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample

   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim httpCompressionSection As ConfigurationSection = config.GetSection("system.webServer/httpCompression")
      Dim dynamicTypesCollection As ConfigurationElementCollection = httpCompressionSection.GetCollection("dynamicTypes")

      Dim addElement As ConfigurationElement = dynamicTypesCollection.CreateElement("add")
      addElement("mimeType") = "application/msword"
      addElement("enabled") = True
      dynamicTypesCollection.Add(addElement)

      Dim addElement1 As ConfigurationElement = dynamicTypesCollection.CreateElement("add")
      addElement1("mimeType") = "application/vnd.ms-powerpoint"
      addElement1("enabled") = True
      dynamicTypesCollection.Add(addElement1)

      Dim addElement2 As ConfigurationElement = dynamicTypesCollection.CreateElement("add")
      addElement2("mimeType") = "application/vnd.ms-excel"
      addElement2("enabled") = True
      dynamicTypesCollection.Add(addElement2)

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var httpCompressionSection = adminManager.GetAdminSection("system.webServer/httpCompression", "MACHINE/WEBROOT/APPHOST");
var dynamicTypesCollection = httpCompressionSection.ChildElements.Item("dynamicTypes").Collection;

var addElement = dynamicTypesCollection.CreateNewElement("add");
addElement.Properties.Item("mimeType").Value = "application/msword";
addElement.Properties.Item("enabled").Value = true;
dynamicTypesCollection.AddElement(addElement);

var addElement1 = dynamicTypesCollection.CreateNewElement("add");
addElement1.Properties.Item("mimeType").Value = "application/vnd.ms-powerpoint";
addElement1.Properties.Item("enabled").Value = true;
dynamicTypesCollection.AddElement(addElement1);

var addElement2 = dynamicTypesCollection.CreateNewElement("add");
addElement2.Properties.Item("mimeType").Value = "application/vnd.ms-excel";
addElement2.Properties.Item("enabled").Value = true;
dynamicTypesCollection.AddElement(addElement2);

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set httpCompressionSection = adminManager.GetAdminSection("system.webServer/httpCompression", "MACHINE/WEBROOT/APPHOST")
Set dynamicTypesCollection = httpCompressionSection.ChildElements.Item("dynamicTypes").Collection

Set addElement = dynamicTypesCollection.CreateNewElement("add")
addElement.Properties.Item("mimeType").Value = "application/msword"
addElement.Properties.Item("enabled").Value = True
dynamicTypesCollection.AddElement(addElement)

Set addElement1 = dynamicTypesCollection.CreateNewElement("add")
addElement1.Properties.Item("mimeType").Value = "application/vnd.ms-powerpoint"
addElement1.Properties.Item("enabled").Value = True
dynamicTypesCollection.AddElement(addElement1)

Set addElement2 = dynamicTypesCollection.CreateNewElement("add")
addElement2.Properties.Item("mimeType").Value = "application/vnd.ms-excel"
addElement2.Properties.Item("enabled").Value = True
dynamicTypesCollection.AddElement(addElement2)

adminManager.CommitChanges()

Les exemples de code suivants ajoutent les types MIME pour les documents Office 2003 à la liste des types de compression statique.

( [>  ! REMARQUE]

Les documents Office 2007 utilisent la compression intégrée. Ils n’ont donc pas besoin d’être compressés par IIS.)

AppCmd.exe

appcmd.exe set config -section:system.webServer/httpCompression /+"staticTypes.[mimeType='application/msword',enabled='True']" /commit:apphost

appcmd.exe set config -section:system.webServer/httpCompression /+"staticTypes.[mimeType='application/vnd.ms-powerpoint',enabled='True']" /commit:apphost

appcmd.exe set config -section:system.webServer/httpCompression /+"staticTypes.[mimeType='application/vnd.ms-excel',enabled='True']" /commit:apphost

Remarque

Vous devez être sûr de définir le paramètre apphostde validation lorsque vous utilisez AppCmd.exe pour configurer ces paramètres. Cela valide les paramètres de configuration dans la section d’emplacement appropriée dans le fichier ApplicationHost.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection httpCompressionSection = config.GetSection("system.webServer/httpCompression");
         ConfigurationElementCollection staticTypesCollection = httpCompressionSection.GetCollection("staticTypes");

         ConfigurationElement addElement = staticTypesCollection.CreateElement("add");
         addElement["mimeType"] = @"application/msword";
         addElement["enabled"] = true;
         staticTypesCollection.Add(addElement);

         ConfigurationElement addElement1 = staticTypesCollection.CreateElement("add");
         addElement1["mimeType"] = @"application/vnd.ms-powerpoint";
         addElement1["enabled"] = true;
         staticTypesCollection.Add(addElement1);

         ConfigurationElement addElement2 = staticTypesCollection.CreateElement("add");
         addElement2["mimeType"] = @"application/vnd.ms-excel";
         addElement2["enabled"] = true;
         staticTypesCollection.Add(addElement2);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample

   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim httpCompressionSection As ConfigurationSection = config.GetSection("system.webServer/httpCompression")
      Dim staticTypesCollection As ConfigurationElementCollection = httpCompressionSection.GetCollection("staticTypes")

      Dim addElement As ConfigurationElement = staticTypesCollection.CreateElement("add")
      addElement("mimeType") = "application/msword"
      addElement("enabled") = True
      staticTypesCollection.Add(addElement)

      Dim addElement1 As ConfigurationElement = staticTypesCollection.CreateElement("add")
      addElement1("mimeType") = "application/vnd.ms-powerpoint"
      addElement1("enabled") = True
      staticTypesCollection.Add(addElement1)

      Dim addElement2 As ConfigurationElement = staticTypesCollection.CreateElement("add")
      addElement2("mimeType") = "application/vnd.ms-excel"
      addElement2("enabled") = True
      staticTypesCollection.Add(addElement2)

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var httpCompressionSection = adminManager.GetAdminSection("system.webServer/httpCompression", "MACHINE/WEBROOT/APPHOST");
var staticTypesCollection = httpCompressionSection.ChildElements.Item("staticTypes").Collection;

var addElement = staticTypesCollection.CreateNewElement("add");
addElement.Properties.Item("mimeType").Value = "application/msword";
addElement.Properties.Item("enabled").Value = true;
staticTypesCollection.AddElement(addElement);

var addElement1 = staticTypesCollection.CreateNewElement("add");
addElement1.Properties.Item("mimeType").Value = "application/vnd.ms-powerpoint";
addElement1.Properties.Item("enabled").Value = true;
staticTypesCollection.AddElement(addElement1);

var addElement2 = staticTypesCollection.CreateNewElement("add");
addElement2.Properties.Item("mimeType").Value = "application/vnd.ms-excel";
addElement2.Properties.Item("enabled").Value = true;
staticTypesCollection.AddElement(addElement2);

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set httpCompressionSection = adminManager.GetAdminSection("system.webServer/httpCompression", "MACHINE/WEBROOT/APPHOST")
Set staticTypesCollection = httpCompressionSection.ChildElements.Item("staticTypes").Collection

Set addElement = staticTypesCollection.CreateNewElement("add")
addElement.Properties.Item("mimeType").Value = "application/msword"
addElement.Properties.Item("enabled").Value = True
staticTypesCollection.AddElement(addElement)

Set addElement1 = staticTypesCollection.CreateNewElement("add")
addElement1.Properties.Item("mimeType").Value = "application/vnd.ms-powerpoint"
addElement1.Properties.Item("enabled").Value = True
staticTypesCollection.AddElement(addElement1)

Set addElement2 = staticTypesCollection.CreateNewElement("add")
addElement2.Properties.Item("mimeType").Value = "application/vnd.ms-excel"
addElement2.Properties.Item("enabled").Value = True
staticTypesCollection.AddElement(addElement2)

adminManager.CommitChanges()