Compresión HTTP <httpCompression>
Información general
El elemento <httpCompression>
especifica la configuración de la 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 de codificación HTTP Accept adecuado. Si un cliente no tiene capacidad para la compresión HTTP, no se 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 directory, lo que aumenta el rendimiento de la compresión al eliminar la necesidad de volver a comprimir el contenido que ya se ha comprimido. Una vez que IIS 7 ha comprimido un archivo, a las solicitudes subsiguientes 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 compresión estática con archivos que normalmente no cambien, 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, 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 contenido de Active Server Pages (ASP) o ASP.NET. Dado que el contenido dinámico cambia 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:
- Deflate: esta forma de compresión se documenta en la especificación Requests For Comment (RFC) 1951.
- GZIP (GNU zip): esta forma de compresión se documenta en la especificación Requests For Comment (RFC) 1952.
Cada uno de estos dos esquemas de compresión se puede habilitar mediante el elemento <schemes>
del elemento <httpCompression>
.
Nota:
Aunque el elemento <httpCompression>
especifica la configuración de la compresión HTTP para Internet Information Services (IIS) 7, el elemento <urlCompression> especifica si la compresión está habilitada para un espacio de nombres de dirección URL.
Compatibilidad
Versión | Notas |
---|---|
IIS 10.0 | El elemento <httpCompression> no se modificó en IIS 10.0. |
IIS 8.5 | El atributo staticCompressionIgnoreHitFrequency se agregó en IIS 8.5. |
IIS 8.0 | El elemento <httpCompression> no se modificó en IIS 8.0. |
IIS 7.5 | En IIS 7.5, se ha cambiado el valor predeterminado del atributo minFileSizeForComp y se ha agregado el atributo dynamicCompressionBufferLimit . |
IIS 7.0 | El elemento <httpCompression> se introdujo en IIS 7.0. |
IIS 6,0 | El elemento <httpCompression> reemplaza a las siguientes propiedades de metabase de IIS 6.0:
|
Configuración
La compresión HTTP suele estar disponible en la instalación predeterminada de IIS 7 y versiones posteriores. Sin embargo, solo se instala la compresión estática de forma predeterminada. Para instalar la compresión estática o dinámica, siga estos pasos.
Windows Server 2012 o Windows Server 2012 R2
- En la barra de tareas, haga clic en Administrador del servidor.
- En Administrador del servidor, haga clic en el menú Administrar y, después, haga clic en Agregar roles y características.
- 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.
- En la página Roles de servidor, expanda Servidor web (IIS),servidor web, rendimiento y, a continuación, seleccione Compresión de contenido estático o Compresiónde contenido dinámico. Haga clic en Next.
. - En la página Seleccionar características, haz clic en Siguiente.
- En la página Confirmar selecciones de instalación, haga clic en Instalar.
- En la página Resultados , haga clic en Cerrar.
Windows 8 o Windows 8.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.
- En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
- Expanda Internet Information Services, Expanda World Wide Web Services, expanda Característicasde rendimiento y, a continuación, seleccione Compresión de contenido dinámico o Compresiónde contenido estático.
- Haga clic en OK.
- Haga clic en Cerrar.
Windows Server 2008 o Windows Server 2008 R2
- En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, luego, haga clic en Administrador del servidor.
- En el panel de jerarquía del Administrador del servidor, expanda Roles y, luego, haga clic en Servidor web (IIS).
- En el panel Servidor web (IIS), desplácese hasta la sección Servicios de rol y, luego, haga clic en Agregar servicios de rol.
- En la página Seleccionar servicios de rol del Asistente para agregar servicios de rol, seleccione Compresión de contenido 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.
- En la página Confirmar selecciones de instalación, haz clic en Instalar.
- En la página Resultados , haga clic en Cerrar.
Windows Vista o Windows 7
- En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
- En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
- Expanda Internet Information Services, después World Wide Web Services y, a continuación Características de rendimiento.
- Seleccione Compresión HTTP dinámica si desea instalar la compresión dinámica y Compresión de contenido estático si desea instalar la compresión estática.
- Haga clic en OK.
Procedimientos
Habilitación o deshabilitación de la compresión estática y dinámica para un sitio o aplicación
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.
- En Panel de control, haga clic en Herramientas administrativas y, 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 Inicio y, luego, 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).
En el panel Conexiones, vaya a la conexión, sitio, aplicación o directorio para los que desea habilitar la compresión.
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 deshabilitarlas.
Una vez completados los pasos anteriores, haga clic en Aplicar en el panel Acciones.
Habilitación o deshabilitación de la compresión estática y dinámica para un servidor
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.
- En Panel de control, haga clic en Herramientas administrativas y, 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 Inicio y, luego, 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).
En el panel Conexiones, resalte el nombre de su servidor.
En el panel Inicio del servidor, haga doble clic en Compresión.
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 deshabilitarlas.
Una vez completados los pasos anteriores, haga clic en Aplicar en el panel Acciones.
Configuración de staticCompressionIgnoreHitFrequency
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.
- En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
En el panel Conexiones, seleccione el servidor y, a continuación, haga doble clic en Editor de configuración.
En el Editor de configuración, en la sección, seleccione system.webServer y, a continuación, seleccione httpCompression.
En staticCompressionIgnoreHitFrequency, escriba
True
para deshabilitar el comportamiento de que un archivo estático se comprima solo si se accede a él un número determinado de veces dentro de un período de tiempo o escribaFalse
para habilitar el comportamiento.
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 para que los cambios en esta propiedad surtan efecto. El valor predeterminado es max-age=86400 . |
directory |
Atributo de cadena opcional. Especifica el directorio donde se van a guardar temporalmente y almacenar en caché las versiones comprimidas de los archivos estáticos. Nota: En IIS 6.0, la ruta de acceso al directorio predeterminada para los archivos comprimidos temporales de IIS era %windir%\IIS Temporary Compressed Files. 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 pueden ocupar todos los archivos comprimidos, que se almacenan en el directorio de compresión especificado por el atributo directory. 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 con el que se deshabilitará la compresión dinámica. Nota: Este atributo actúa como límite superior de CPU con el que se desactiva la compresión dinámica. Cuando el uso de CPU está 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 entre 0 y 100. El uso medio de CPU se calcula cada 30 segundos. Nota: Este atributo actúa como límite inferior de CPU por debajo del cual se activa la compresión dinámica. Cuando el uso de CPU aumenta por encima del valor especificado en el atributo dynamicCompressionDisableCpuUsage, se deshabilita 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é 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 para 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 pueden ocupar los archivos comprimidos 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 menos usados 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 en IIS 7.5 es 2700 ; en 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 pueda 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 pueda 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 con el que se deshabilita la compresión estática. El valor debe estar entre 0 y 100. El uso medio de CPU se calcula cada 30 segundos. Nota: Esta propiedad actúa como límite superior de CPU con el que se desactiva la compresión estática. Cuando el uso de CPU está 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 con el que se habilita la compresión estática. El valor debe estar entre 0 y 100. El uso medio de CPU se calcula cada 30 segundos. Nota: Esta propiedad actúa como límite inferior de CPU por debajo del cual se activa 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, se deshabilita el comportamiento de que un archivo estático se comprima solo si se accede a él un número determinado de veces dentro de un período de tiempo. Es posible que se encuentre con casos en los que desea que el contenido estático siempre se comprima para reducir el uso del 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 subsiguientes no llegarían al servidor web. Si el comportamiento no está deshabilitado, una tasa de accesos mayor o igual que dos accesos en 10 segundos dará como resultado la compresión del contenido estático. Una tasa de accesos 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 de la compresión dinámica. |
staticTypes |
Elemento opcional. Especifica los valores de configuración de la compresión estática. |
Ejemplo de configuración
El siguiente elemento predeterminado <httpCompression>
está configurado en el archivo ApplicationHost.config en IIS 7. Esta sección de configuración hereda las opciones de configuración predeterminadas a menos que use el elemento <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>
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 no hace falta que IIS los comprima.
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 de confirmación en apphost
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ática.
(> [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 de confirmación en apphost
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()