Compresión <HTTP httpCompression>

Información general

El <httpCompression> elemento especifica la configuración de compresión HTTP para Internet Information Services (IIS) 7. La compresión HTTP puede proporcionar tiempos de transmisión más rápidos entre IIS y exploradores cliente que pueden aceptar archivos comprimidos.

Nota:

Un cliente HTTP debe iniciar la comunicación para el contenido comprimido mediante el envío del encabezado HTTP Accept-encoding adecuado. Si un cliente no es capaz de compresión HTTP, no pasará ese encabezado y IIS 7 siempre devolverá contenido sin comprimir.

Hay dos tipos diferentes de compresión que IIS 7 usa:

  • Compresión estática:

    IIS 7 almacena en caché el contenido estático comprimido en la ruta de acceso especificada por el atributo de directorio , lo que aumenta el rendimiento de compresión eliminando la necesidad de volver a comprimir el contenido que ya se ha comprimido. Después de que IIS 7 haya comprimido un archivo, a las solicitudes posteriores se les asigna la copia comprimida del archivo desde el directorio de caché.

    Los atributos staticCompressionEnableCpuUsage y staticCompressionDisableCpuUsage especifican cuándo IIS 7 comprimirá los archivos estáticos en función del uso de cpu.

    Debe usar la compresión estática con archivos que normalmente no cambian, como archivos HTML (*.html, *.htm), archivos de texto (*.txt), documentos de Microsoft Office (*.doc, *.xls, *.ppt), etc. El tamaño de estos archivos se puede reducir mediante la compresión, lo que reduce los tiempos de descarga de las solicitudes de cliente y reduce el ancho de banda en el servidor.

    Nota:

    Los archivos de imagen como *.jpg y *.png también son archivos estáticos, pero normalmente no se benefician de la compresión HTTP porque estos archivos de imagen ya están comprimidos.

  • Compresión dinámica:

    A diferencia de la compresión estática, IIS 7 realiza la compresión dinámica cada vez que un cliente solicita el contenido, pero la versión comprimida no se almacena en caché en el disco. Este cambio se realiza debido a la diferencia principal entre el contenido estático y dinámico. El contenido estático no cambia. Sin embargo, el contenido dinámico suele ser contenido creado por una aplicación y, por tanto, cambia a menudo, como Páginas de Active Server (ASP) o ASP.NET contenido. Dado que el contenido dinámico debe cambiar a menudo, IIS 7 no lo almacena en caché.

    Los atributos dynamicCompressionEnableCpuUsage y dynamicCompressionDisableCpuUsage especifican cuándo IIS 7 comprimirá los archivos dinámicos en función del uso de cpu.

IIS 7 admite dos esquemas de compresión estándar del sector diferentes:

Cada uno de estos dos esquemas de compresión se puede habilitar mediante el <schemes> elemento del <httpCompression> elemento .

Nota:

Aunque el <httpCompression> elemento especifica la configuración de compresión HTTP para Internet Information Services (IIS) 7, el <elemento urlCompression> especifica si la compresión está habilitada para un espacio de nombres url.

Compatibilidad

Versión Notas
IIS 10.0 El <httpCompression> elemento no se modificó en IIS 10.0.
IIS 8,5 El staticCompressionIgnoreHitFrequency atributo se agregó en IIS 8.5.
IIS 8,0 El <httpCompression> elemento no se modificó en IIS 8.0.
IIS 7,5 En IIS 7.5, se ha cambiado el valor predeterminado del minFileSizeForComp atributo y se agregó el dynamicCompressionBufferLimit atributo .
IIS 7.0 El <httpCompression> elemento se introdujo en IIS 7.0.
IIS 6,0 El <httpCompression> elemento reemplaza las siguientes propiedades de metabase de IIS 6.0:
  • HcCacheControlHeader
  • HcCompressionDirectory
  • HcDoDiskSpaceLimiting
  • HcExpiresHeader
  • HcMaxDiskSpaceUsage
  • HcMinFileSizeForComp
  • HcNoCompressionForHttp10
  • HcNoCompressionForProxies
  • HcNoCompressionForRange
  • HcSendCacheHeaders

Configurar

La compresión HTTP normalmente está disponible en la instalación predeterminada de IIS 7 y versiones posteriores. Sin embargo, de forma predeterminada, solo se instala la compresión estática. Para instalar la compresión estática o dinámica, siga estos pasos.

Windows Server 2012 o Windows Server 2012 R2

  1. En la barra de tareas, haga clic en Administrador del servidor.
  2. En Administrador del servidor, haga clic en el menú Administrar y, a continuación, haga clic en Agregar roles y características.
  3. En el Asistente para agregar roles y características , haga clic en Siguiente. Seleccione el tipo de instalación y haga clic en Siguiente. Seleccione el servidor de destino y haga clic en Siguiente.
  4. En la página Roles de servidor , expanda Servidor web (IIS), expanda Servidor web, expanda Rendimientoy, a continuación, seleccione Compresión de contenido estático o Compresiónde contenido dinámico. Haga clic en Next.
    Captura de pantalla del nodo Servidor web y rendimiento con compresión de contenido estático seleccionada y Compresión de contenido dinámico resaltada. .
  5. En la página Seleccionar características, haz clic en Siguiente.
  6. En la página Confirmar selecciones de instalación, haga clic en Instalar.
  7. En la página Resultados, haga clic en Cerrar.

Windows 8 o Windows 8.1

  1. En la pantalla Inicio, mueva el puntero hasta la esquina inferior izquierda, haga clic con el botón derecho en el botón Inicio y, a continuación, haga clic en Panel de control.
  2. En Panel de control, haga clic en Programas y características y, a continuación, haga clic en Activar o desactivar características de Windows.
  3. Expanda Internet Information Services, Servicios World Wide Web, Características de rendimiento y, a continuación, seleccione Compresión de contenido dinámico o Compresión de contenido estático.
    Captura de pantalla del panel World Wide Web y Características de rendimiento expandido que muestra la compresión de contenido dinámico y la compresión de contenido estático seleccionada.
  4. Haga clic en Aceptar.
  5. Haga clic en Cerrar.

Windows Server 2008 o Windows Server 2008 R2

  1. En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativasy, a continuación, haga clic en Administrador del servidor.
  2. En el panel Administrador del servidor jerarquía, expanda Rolesy, a continuación, haga clic en Servidor web (IIS).
  3. En el panel Servidor web (IIS), desplácese hasta la sección Servicios de rol y, a continuación, haga clic en Agregar servicios de rol.
  4. En la página Seleccionar servicios de rol del Asistente para agregar servicios de rol, seleccione Compresión decontenido dinámico si desea instalar compresión dinámica y Compresión de contenido estático si desea instalar la compresión estática y, a continuación, haga clic en Siguiente.
    Captura de pantalla del nodo Rendimiento expandido en la página Agregar servicios de rol con la compresión de contenido dinámico resaltada.
  5. En la página Confirmar selecciones de instalación, haz clic en Instalar.
  6. En la página Resultados, haga clic en Cerrar.

Windows Vista o Windows 7

  1. En la barra de tareas, haga clic en Inicioy, a continuación, haga clic en Panel de control.
  2. En Panel de control, haga clic en Programas y características y, a continuación, haga clic en Activar o desactivar características de Windows.
  3. Expanda Internet Information Services, World Wide Web Services y, a continuación, Características de rendimiento.
  4. Seleccione Http Compression Dynamic si desea instalar la compresión dinámica y la compresión de contenido estático si desea instalar la compresión estática.
    Captura de pantalla del nodo Características de rendimiento expandido y H T T P Compression Dynamic (Dinámica de compresión H T T P) seleccionada.
  5. Haga clic en OK.

Procedimientos

Cómo habilitar o deshabilitar la compresión estática y dinámica para un sitio o aplicación

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • Haga clic en Herramientas administrativasy, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicioy, a continuación, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones , vaya a la conexión, sitio, aplicación o directorio para el que desea habilitar la compresión.

  3. En el panel Inicio , haga doble clic en Compresión.
    Captura de pantalla de la página principal del sitio web predeterminado que muestra la compresión seleccionada.

  4. En el panel Compresión , active las casillas para habilitar la compresión estática o dinámica, o quite las marcas de verificación para deshabilitar la compresión estática o dinámica.
    Captura de pantalla que muestra el panel Compresión con los cuadros Habilitar compresión de contenido dinámico y Habilitar compresión de contenido estático seleccionados.

  5. Una vez completados los pasos anteriores, haga clic en Aplicar en el panel Acciones .

Cómo habilitar o deshabilitar la compresión estática y dinámica para un servidor

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • Haga clic en Herramientas administrativasy, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicioy, a continuación, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones , resalte el nombre del servidor.

  3. En el panel Inicio del servidor, haga doble clic en Compresión.
    Captura de pantalla que muestra el panel Inicio de servidores con compresión resaltado.

  4. En el panel Compresión , active las casillas para habilitar la compresión estática o dinámica, o quite las marcas de verificación para deshabilitar la compresión estática o dinámica.
    Captura de pantalla de la página Compresión que muestra ambos cuadros para Habilitar compresión de contenido dinámico y Habilitar compresión de contenido estático seleccionada.

  5. Una vez completados los pasos anteriores, haga clic en Aplicar en el panel Acciones .

Configuración de staticCompressionIgnoreHitFrequency

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • Haga clic en Herramientas administrativasy, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones , seleccione el servidor y, a continuación, haga doble clic en Editor de configuración.

  3. En el Editor de configuración, en la sección , seleccione system.webServer y, a continuación, seleccione httpCompression.

  4. En staticCompressionIgnoreHitFrequency, escriba True para deshabilitar el comportamiento que un archivo estático se comprime solo si se alcanza un número determinado de veces dentro de un período de tiempo o escribe False para habilitar el comportamiento.
    Captura de pantalla que muestra la página Editor de configuración con True especificado para la opción static Compression Ignore Hit Frequency (Omitir frecuencia de aciertos).

  5. En el panel Acciones, haga clic en Aplicar.

Configuración

Atributos

Atributo Descripción
cacheControlHeader Atributo de cadena opcional.

Especifica la directiva que IIS agrega al encabezado Cache-Control que invalida el encabezado HTTP Expires. Este atributo garantiza que los clientes y servidores proxy antiguos no intenten almacenar en caché los archivos comprimidos. Para habilitar esta configuración, debe establecer el atributo sendCacheHeaders en true. El servicio WWW debe reiniciarse antes de que los cambios en esta propiedad surtan efecto.

El valor predeterminado es max-age=86400.
directory Atributo de cadena opcional.

Especifica el directorio donde las versiones comprimidas de los archivos estáticos se almacenan y almacenan temporalmente en caché.

Nota: En IIS 6.0, la ruta de acceso del directorio predeterminada para los archivos comprimidos temporales de IIS era %windir%\IIS Archivos comprimidos temporales.

El valor predeterminado es %SystemDrive%\inetpub\temp\IIS Temporary Compressed Files.
doDiskSpaceLimiting Atributo Boolean opcional.

Especifica si existe un límite para la cantidad de espacio en disco que todos los archivos comprimidos, que se almacenan en el directorio de compresión especificado por el atributo directory, pueden ocupar.

El valor predeterminado es true.
dynamicCompressionBufferLimit Atributo uint opcional.

Especifica la cantidad máxima de datos comprimidos dinámicamente que IIS almacenará en búfer antes de vaciar el búfer en un cliente. Esto reduce la cantidad de memoria necesaria para realizar la compresión dinámica.

Nota: Este atributo se agregó en IIS 7.5.

El valor predeterminado es 65536.
dynamicCompressionDisableCpuUsage Atributo uint opcional.

Especifica el porcentaje de uso de CPU en el que se deshabilitará la compresión dinámica.

Nota: Este atributo actúa como un límite superior de CPU en el que se desactiva la compresión dinámica. Cuando el uso de la CPU cae por debajo del valor especificado en el atributo dynamicCompressionEnableCpuUsage , se volverá a habilitar la compresión dinámica.

El valor predeterminado es 90.
dynamicCompressionEnableCpuUsage Atributo uint opcional.

Especifica el porcentaje de uso de CPU por debajo del cual se habilitará la compresión dinámica. El valor debe estar comprendido entre 0 y 100. El uso medio de cpu se calcula cada 30 segundos.

Nota: Este atributo actúa como un límite de CPU inferior al que está activada la compresión dinámica. Cuando el uso de cpu aumenta por encima del valor especificado en el atributo dynamicCompressionDisableCpuUsage , se deshabilitará la compresión dinámica.

El valor predeterminado es 50.
expiresHeader Atributo de cadena opcional.

Especifica el contenido del encabezado HTTP Expires que se envía con todos los archivos comprimidos solicitados, junto con el encabezado Cache-Control especificado en el atributo cacheControlHeader . Esta combinación de encabezados garantiza que los clientes y servidores proxy antiguos no intenten almacenar en caché los archivos comprimidos. Para habilitar esta configuración, debe establecer el atributo sendCacheHeaders en true. El Servicio de publicación World Wide Web (servicio WWW) debe reiniciarse antes de que los cambios en esta propiedad surtan efecto.

El valor predeterminado es Wed, 01 Jan 1997 12:00:00 GMT.
maxDiskSpaceUsage Atributo uint opcional.

Especifica el número de megabytes de espacio en disco que los archivos comprimidos pueden ocupar en el directorio de compresión. Cuando el espacio usado por archivos comprimidos supera el 90 % del valor de este atributo, IIS elimina los archivos usados menos recientemente hasta que se alcanza un nivel de uso del 90 %.

Nota: En IIS 6.0, este límite se expresó en bytes; en IIS 7, se expresa en megabytes. En IIS 7, el límite se aplica por grupo de aplicaciones.

El valor predeterminado es 100.
minFileSizeForComp Atributo uint opcional.

Especifica el número mínimo de kilobytes que debe contener un archivo para poder usar la compresión a petición.

El valor predeterminado de IIS 7.5 es 2700; para IIS 7.0, el valor predeterminado era 256.
noCompressionForHttp10 Atributo Boolean opcional.

Especifica si la compresión está deshabilitada para las solicitudes que contienen un número de versión HTTP 1.0.

Nota: Algunos clientes HTTP 1.0 no controlan correctamente el almacenamiento en caché de objetos comprimidos. Puede usar esta configuración para evitar devolver un archivo comprimido a un cliente que no puede descomprimirlo.

El valor predeterminado es true.
noCompressionForProxies Atributo Boolean opcional.

Especifica si la respuesta HTTP 1.1 está deshabilitada para las solicitudes de compresión que llegan a través de servidores proxy.

Nota: Algunos servidores proxy HTTP no controlan correctamente el almacenamiento en caché de objetos comprimidos. Puede usar esta configuración para evitar devolver un archivo comprimido a un servidor proxy que no pueda descomprimirlo.

El valor predeterminado es true.
noCompressionForRange Atributo Boolean opcional.

Especifica si la compresión está deshabilitada para las solicitudes HTTP que incluyen el encabezado Range.

Nota: Algunos clientes no pueden controlar correctamente las solicitudes de intervalo. Puede usar esta configuración para evitar devolver un archivo comprimido a un cliente que no puede descomprimirlo.

El valor predeterminado es true.
sendCacheHeaders Atributo Boolean opcional.

Especifica si los encabezados configurados en cacheControlHeader y expiresHeader se envían con cada respuesta comprimida.

El valor predeterminado es false.
staticCompressionDisableCpuUsage Atributo uint opcional.

Especifica el porcentaje de uso de CPU en el que está deshabilitada la compresión estática. El valor debe estar comprendido entre 0 y 100. El uso medio de cpu se calcula cada 30 segundos.

Nota: Esta propiedad actúa como un límite superior de CPU en el que se desactiva la compresión estática. Cuando el uso de CPU cae por debajo del valor especificado en el atributo staticCompressionEnableCpuUsage , se volverá a habilitar la compresión estática.

El valor predeterminado es 100.
staticCompressionEnableCpuUsage Atributo uint opcional.

Especifica el porcentaje de uso de CPU en el que está habilitada la compresión estática. El valor debe estar comprendido entre 0 y 100. El uso medio de cpu se calcula cada 30 segundos.

Nota: Esta propiedad actúa como un límite de CPU inferior al que está activada la compresión estática. Cuando el uso de CPU aumenta por encima del valor especificado en el atributo staticCompressionDisableCpuUsage , se deshabilitará la compresión estática.

El valor predeterminado es 50.
staticCompressionIgnoreHitFrequency Atributo Boolean opcional.

Si es True, deshabilita el comportamiento que un archivo estático se comprime solo si se alcanza un número determinado de veces en un período de tiempo. Es posible que encuentre circunstancias en las que desea que el contenido estático siempre se comprima para reducir el uso de ancho de banda. Por ejemplo, es posible que quiera comprimir siempre el contenido estático cuando un sistema emplea un equilibrador de carga con almacenamiento en caché perimetral entre un servidor web y el solicitante, lo que hace que un archivo sin comprimir se almacene en caché en el servidor perimetral porque las solicitudes posteriores no llegarían al servidor web.

Si el comportamiento no está deshabilitado, una tasa de aciertos mayor o igual que dos aciertos en 10 segundos dará como resultado la compresión del contenido estático. Una tasa de aciertos menor provocaría que el contenido no se comprimiera.

El valor predeterminado es False.

Elementos secundarios

Elemento Descripción
scheme Elemento opcional.

Especifica el esquema de compresión (Gzip o Deflate) que IIS usa para comprimir las solicitudes de cliente.
dynamicTypes Elemento opcional.

Especifica los valores de configuración para la compresión dinámica.
staticTypes Elemento opcional.

Especifica los valores de configuración para la compresión estática.

Ejemplo de configuración

El siguiente elemento predeterminado <httpCompression> se configura en el archivo ApplicationHost.config en IIS 7. Esta sección de configuración hereda los valores de configuración predeterminados a menos que use el <clear> elemento .

<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>

Código de ejemplo

Los ejemplos de código siguientes agregarán los tipos MIME para documentos de Office 2003 a la lista de tipos de compresión dinámica.

Nota

Los documentos de Office 2007 usan compresión integrada, por lo que iiS no necesita comprimirlos.

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

Nota

Debe asegurarse de establecer el parámetro apphostcommit en cuando use AppCmd.exe para configurar estas opciones. Esto confirma los valores de configuración en la sección de ubicación adecuada del archivo 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()

Los ejemplos de código siguientes agregarán los tipos MIME para documentos de Office 2003 a la lista de tipos de compresión estáticos.

(> [! NOTA]

Los documentos de Office 2007 usan compresión integrada, por lo que no es necesario comprimirlos mediante 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

Nota

Debe asegurarse de establecer el parámetro apphostcommit en cuando use AppCmd.exe para configurar estas opciones. Esto confirma los valores de configuración en la sección de ubicación adecuada del archivo 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()