Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Visão geral
O <httpCompression> elemento especifica as configurações de compactação HTTP dos Serviços de Informações da Internet (IIS) 7. A compactação HTTP pode fornecer tempos de transmissão mais rápidos entre o IIS e navegadores cliente que podem aceitar arquivos compactados.
Observação
Um cliente HTTP deve iniciar a comunicação para conteúdo compactado enviando o cabeçalho de codificação http apropriado. Se um cliente não for capaz de compactar HTTP, ele não passará esse cabeçalho e o IIS 7 sempre retornará conteúdo descompactado.
Há dois tipos diferentes de compactação que o IIS 7 usa:
Compactação estática:
O IIS 7 armazena em cache conteúdo estático compactado no caminho especificado pelo atributo de diretório , o que aumenta o desempenho da compactação eliminando a necessidade de recompactar o conteúdo que já foi compactado. Depois que o IIS 7 compactar um arquivo, as solicitações subsequentes receberão a cópia compactada do arquivo do diretório de cache.
Os atributos staticCompressionEnableCpuUsage e staticCompressionDisableCpuUsage especificam quando o IIS 7 compacta arquivos estáticos com base no uso da CPU.
Você deve usar compactação estática com arquivos que normalmente não são alterados, como arquivos HTML (*.html, *.htm), arquivos de texto (*.txt), documentos do Microsoft Office (*.doc, *.xls, *.ppt), etc. O tamanho desses arquivos pode ser reduzido por meio da compactação, o que reduz os tempos de download para solicitações de cliente e reduz a largura de banda no servidor.
Observação
Arquivos de imagem como *.jpg e * arquivos.png também são arquivos estáticos, mas normalmente eles não se beneficiam da compactação HTTP porque esses arquivos de imagem já estão compactados.
Compactação dinâmica:
Ao contrário da compactação estática, o IIS 7 executa compactação dinâmica sempre que um cliente solicita o conteúdo, mas a versão compactada não é armazenada em cache no disco. Essa alteração é feita devido à principal diferença entre conteúdo estático e dinâmico. O conteúdo estático não é alterado. No entanto, o conteúdo dinâmico normalmente é conteúdo criado por um aplicativo e, portanto, é alterado com frequência, como ASP (Páginas do Servidor Ativo) ou conteúdo ASP.NET. Como o conteúdo dinâmico deve ser alterado com frequência, o IIS 7 não o armazena em cache.
Os atributos dynamicCompressionEnableCpuUsage e dynamicCompressionDisableCpuUsage especificam quando o IIS 7 compacta arquivos dinâmicos com base no uso da CPU.
O IIS 7 dá suporte a dois esquemas de compactação padrão do setor diferentes:
- Deflate – essa forma de compactação está documentada na especificação 1951 do Requests For Comment (RFC).
- GZIP (zip GNU) – essa forma de compactação está documentada na especificação 1952 de Solicitações de Comentário (RFC).
Cada um desses dois esquemas de compactação pode ser habilitado usando o <schemes> elemento do <httpCompression> elemento.
Observação
Embora o <httpCompression> elemento especifique as configurações de compactação HTTP para os Serviços de Informações da Internet (IIS) 7, o <elemento urlCompression> especifica se a compactação está habilitada para um namespace de URL.
Compatibilidade
| Versão | Anotações |
|---|---|
| IIS 10.0 | O <httpCompression> elemento não foi modificado no IIS 10.0. |
| IIS 8.5 | O staticCompressionIgnoreHitFrequency atributo foi adicionado ao IIS 8.5. |
| IIS 8.0 | O <httpCompression> elemento não foi modificado no IIS 8.0. |
| IIS 7.5 | No IIS 7.5, o valor padrão do minFileSizeForComp atributo foi alterado e o dynamicCompressionBufferLimit atributo foi adicionado. |
| IIS 7.0 | O <httpCompression> elemento foi introduzido no IIS 7.0. |
| IIS 6.0 | O <httpCompression> elemento substitui as seguintes propriedades de metabase do IIS 6.0:
|
Configuração
A compactação HTTP geralmente está disponível na instalação padrão do IIS 7 e posterior. No entanto, apenas a compactação estática é instalada por padrão. Para instalar a compactação estática ou dinâmica, use as etapas a seguir.
Windows Server 2012 ou Windows Server 2012 R2
- Na barra de tarefas, clique em Gerenciador de Servidores.
- No Gerenciador do Servidor, clique no menu Gerenciar e clique em Adicionar Funções e Recursos.
- No assistente Adicionar Funções e Recursos , clique em Avançar. Selecione o tipo de instalação e clique em Avançar. Selecione o servidor de destino e clique em Avançar.
- Na página Funções do Servidor , expanda o Servidor Web (IIS), expanda o Servidor Web, expanda o Desempenho e selecione Compactação de Conteúdo Estático e/ou Compactação de Conteúdo Dinâmico. Clique em Próximo.
. - Na página Selecionar recursos , clique em Avançar.
- Na página Confirmar seleções de instalação, clique em Instalar.
- Na página Resultados , clique em Fechar.
Windows 8 ou Windows 8.1
- Na tela Inicial , mova o ponteiro até o canto inferior esquerdo, clique com o botão direito do mouse no botão Iniciar e clique em Painel de Controle.
- No Painel de Controle, clique em Programas e Recursos e, em seguida, clique em Ativar ou Desativar recursos do Windows.
- Expanda os Serviços de Informações da Internet, expanda os Serviços Web da World Wide, expanda os Recursos de Desempenho e selecione Compactação de Conteúdo Dinâmico e/ou Compactação de Conteúdo Estático.
- Clique em OK.
- Clique em Fechar.
Windows Server 2008 R2 ou Windows Server 2008
- Na barra de tarefas, clique em Iniciar, aponte para Ferramentas Administrativas e clique em Gerenciador de Servidores.
- No painel hierarquia do Gerenciador de Servidores , expanda Funções e clique em Servidor Web (IIS).
- No painel servidor Web (IIS ), role até a seção Serviços de Função e clique em Adicionar Serviços de Função.
- Na página Selecionar Serviços de Função do Assistente para Adicionar Serviços de Função, selecione Compactação de ConteúdoDinâmico se quiser instalar compactação dinâmica e compactação de conteúdo estático se quiser instalar a compactação estática e clique em Avançar.
- Na página Confirmar Seleções de Instalação , clique em Instalar.
- Na página Resultados , clique em Fechar.
Windows Vista ou Windows 7
- Na barra de tarefas, clique em Iniciar e clique em Painel de Controle.
- No Painel de Controle, clique em Programas e Recursos e, em seguida, clique em Ativar ou Desativar Recursos do Windows.
- Expanda os Serviços de Informações da Internet e, em seguida, os Serviços Web em Todo o Mundo e, em seguida, os Recursos de Desempenho.
- Selecione Http Compression Dynamic se você quiser instalar a compactação dinâmica e a compactação de conteúdo estático se quiser instalar a compactação estática.
- Clique em OK.
Como Fazer
Como habilitar ou desabilitar a compactação estática e dinâmica para um site ou aplicativo
Abra o Gerenciador do IIS (Serviços de Informações da Internet):
Se você estiver usando o Windows Server 2012 ou o Windows Server 2012 R2:
- Na barra de tarefas, clique em Gerenciador de Servidores, clique em Ferramentas e, em seguida, clique no Gerenciador de Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows 8 ou o Windows 8.1:
- Mantenha pressionada a tecla Windows , pressione a letra X e clique em Painel de Controle.
- Clique em Ferramentas Administrativas e clique duas vezes no Gerenciador dos Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows Server 2008 ou o Windows Server 2008 R2:
- Na barra de tarefas, clique em Iniciar, aponte para Ferramentas Administrativas e clique no Gerenciador de Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows Vista ou o Windows 7:
- Na barra de tarefas, clique em Iniciar e clique em Painel de Controle.
- Clique duas vezes em Ferramentas Administrativas e clique duas vezes no Gerenciador dos Serviços de Informações da Internet (IIS).
No painel Conexões , vá para a conexão, site, aplicativo ou diretório para o qual você deseja habilitar a compactação.
No painel Página Inicial , clique duas vezes em Compactação.
No painel Compactação , marque as caixas para habilitar a compactação estática ou dinâmica ou remova as marcas de seleção para desabilitar a compactação estática ou dinâmica.
Depois de concluir as etapas acima, clique em Aplicar no painel Ações .
Como habilitar ou desabilitar a compactação estática e dinâmica para um servidor
Abra o Gerenciador do IIS (Serviços de Informações da Internet):
Se você estiver usando o Windows Server 2012 ou o Windows Server 2012 R2:
- Na barra de tarefas, clique em Gerenciador de Servidores, clique em Ferramentas e, em seguida, clique no Gerenciador de Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows 8 ou o Windows 8.1:
- Mantenha pressionada a tecla Windows , pressione a letra X e clique em Painel de Controle.
- Clique em Ferramentas Administrativas e clique duas vezes no Gerenciador dos Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows Server 2008 ou o Windows Server 2008 R2:
- Na barra de tarefas, clique em Iniciar, aponte para Ferramentas Administrativas e clique no Gerenciador de Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows Vista ou o Windows 7:
- Na barra de tarefas, clique em Iniciar e clique em Painel de Controle.
- Clique duas vezes em Ferramentas Administrativas e clique duas vezes no Gerenciador dos Serviços de Informações da Internet (IIS).
No painel Conexões , realce o nome do servidor.
No painel Página Inicial do servidor, clique duas vezes em Compactação.
No painel Compactação , marque as caixas para habilitar a compactação estática ou dinâmica ou remova as marcas de seleção para desabilitar a compactação estática ou dinâmica.
Depois de concluir as etapas acima, clique em Aplicar no painel Ações .
Como configurar staticCompressionIgnoreHitFrequency
Abra o Gerenciador do IIS (Serviços de Informações da Internet):
Se você estiver usando o Windows Server 2012 R2:
- Na barra de tarefas, clique em Gerenciador de Servidores, clique em Ferramentas e, em seguida, clique no Gerenciador de Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows 8.1:
- Mantenha pressionada a tecla Windows , pressione a letra X e clique em Painel de Controle.
- Clique em Ferramentas Administrativas e clique duas vezes no Gerenciador dos Serviços de Informações da Internet (IIS).
No painel Conexões , selecione o servidor e clique duas vezes no Editor de Configuração.
No Editor de Configuração, para a seção, selecione system.webServer e, em seguida, selecione httpCompression.
Para staticCompressionIgnoreHitFrequency, insira
Truepara desabilitar o comportamento de que um arquivo estático é compactado somente se ele for atingido um determinado número de vezes em um período de tempo ou inserirFalsepara habilitar o comportamento.
No painel Ações , clique em Aplicar.
Configuração
Atributos
Esses atributos só podem ser configurados no nível do servidor. A configuração em um nível de site ou inferior será ignorada.
| Atributo | Descrição |
|---|---|
cacheControlHeader |
Atributo de cadeia de caracteres opcional. Especifica a diretiva que o IIS adiciona ao cabeçalho Cache-Control que substitui o cabeçalho HTTP Expires. Esse atributo garante que clientes mais antigos e servidores proxy não tentem armazenar arquivos compactados em cache. Para habilitar essa configuração, você deve definir o atributo sendCacheHeaders como true. O serviço WWW deve ser reiniciado antes que as alterações nessa propriedade entrem em vigor. O valor padrão é max-age=86400. |
directory |
Atributo de cadeia de caracteres opcional. Especifica o diretório em que as versões compactadas de arquivos estáticos são temporariamente armazenadas e armazenadas em cache. Nota: No IIS 6.0, o caminho de diretório padrão para arquivos compactados temporários do IIS era %windir%\IIS Temporary Compressed Files. O valor padrão é %SystemDrive%\inetpub\temp\IIS Temporary Compressed Files. |
doDiskSpaceLimiting |
Atributo booliano opcional. Especifica se existe um limite para a quantidade de espaço em disco que todos os arquivos compactados, armazenados no diretório de compactação especificado pelo atributo de diretório, podem ocupar. O valor padrão é true. |
dynamicCompressionBufferLimit |
Atributo uint opcional. Especifica a quantidade máxima de dados compactados dinamicamente que o IIS armazenará em buffer antes de liberar o buffer para um cliente. Isso diminui a quantidade de memória necessária para executar a compactação dinâmica. Nota: Esse atributo foi adicionado ao IIS 7.5. O valor padrão é 65536. |
dynamicCompressionDisableCpuUsage |
Atributo uint opcional. Especifica o percentual de utilização da CPU na qual a compactação dinâmica será desabilitada. Nota: Esse atributo atua como um limite superior da CPU no qual a compactação dinâmica está desativada. Quando a utilização da CPU ficar abaixo do valor especificado no atributo dynamicCompressionEnableCpuUsage , a compactação dinâmica será reabilitada. O valor padrão é 90. |
dynamicCompressionEnableCpuUsage |
Atributo uint opcional. Especifica o percentual de utilização da CPU abaixo da qual a compactação dinâmica será habilitada. O valor deve estar entre 0 e 100. A utilização média da CPU é calculada a cada 30 segundos. Nota: Esse atributo atua como um limite de CPU inferior abaixo do qual a compactação dinâmica está ativada. Quando a utilização da CPU subir acima do valor especificado no atributo dynamicCompressionDisableCpuUsage , a compactação dinâmica será desabilitada. O valor padrão é 50. |
expiresHeader |
Atributo de cadeia de caracteres opcional. Especifica o conteúdo do cabeçalho HTTP Expires que é enviado com todos os arquivos compactados solicitados, juntamente com o cabeçalho Cache-Control especificado no atributo cacheControlHeader . Essa combinação de cabeçalhos garante que clientes mais antigos e servidores proxy não tentem armazenar arquivos compactados em cache. Para habilitar essa configuração, você deve definir o atributo sendCacheHeaders como true. O serviço WWW (World Wide Web Publishing Service) deve ser reiniciado antes que as alterações nessa propriedade entrem em vigor. O valor padrão é Wed, 01 Jan 1997 12:00:00 GMT. |
maxDiskSpaceUsage |
Atributo uint opcional. Especifica o número de megabytes de espaço em disco que os arquivos compactados podem ocupar no diretório de compactação. Quando o espaço usado por arquivos compactados excede 90% do valor nesse atributo, o IIS exclui os arquivos menos usados recentemente até que um nível de uso de 90% seja atingido. Nota: No IIS 6.0, esse limite foi expresso em bytes; no IIS 7, ele é expresso em megabytes. No IIS 7, o limite é aplicado por pool de aplicativos. O valor padrão é 100. |
minFileSizeForComp |
Atributo uint opcional. Especifica o número mínimo de bytes que um arquivo deve conter para usar a compactação sob demanda. O valor padrão do IIS 7.5 é 2700; para o IIS 7.0, o valor padrão era 256. |
noCompressionForHttp10 |
Atributo booliano opcional. Especifica se a compactação está desabilitada para solicitações que contêm um número de versão HTTP 1.0. Nota: Alguns clientes HTTP 1.0 não manipulam o cache de objetos compactados corretamente. Você pode usar essa configuração para evitar o retorno de um arquivo compactado para um cliente que não pode descompactá-lo. O valor padrão é true. |
noCompressionForProxies |
Atributo booliano opcional. Especifica se a resposta HTTP 1.1 está desabilitada para solicitações de compactação que vêm por meio de servidores proxy. Nota: Alguns servidores proxy HTTP não manipulam o cache de objetos compactados corretamente. Você pode usar essa configuração para evitar o retorno de um arquivo compactado para um servidor proxy que não pode descompactá-lo. O valor padrão é true. |
noCompressionForRange |
Atributo booliano opcional. Especifica se a compactação está desabilitada para solicitações HTTP que incluem o cabeçalho Range. Nota: Alguns clientes não podem lidar com solicitações de intervalo corretamente. Você pode usar essa configuração para evitar o retorno de um arquivo compactado para um cliente que não pode descompactá-lo. O valor padrão é true. |
sendCacheHeaders |
Atributo booliano opcional. Especifica se os cabeçalhos configurados em cacheControlHeader e expiresHeader são enviados com cada resposta compactada. O valor padrão é false. |
staticCompressionDisableCpuUsage |
Atributo uint opcional. Especifica o percentual de utilização da CPU na qual a compactação estática está desabilitada. O valor deve estar entre 0 e 100. A utilização média da CPU é calculada a cada 30 segundos. Nota: Essa propriedade atua como um limite superior da CPU no qual a compactação estática é desativada. Quando a utilização da CPU ficar abaixo do valor especificado no atributo staticCompressionEnableCpuUsage , a compactação estática será reenabled. O valor padrão é 100. |
staticCompressionEnableCpuUsage |
Atributo uint opcional. Especifica o percentual de utilização da CPU na qual a compactação estática está habilitada. O valor deve estar entre 0 e 100. A utilização média da CPU é calculada a cada 30 segundos. Nota: Essa propriedade atua como um limite de CPU inferior abaixo do qual a compactação estática está ativada. Quando a utilização da CPU subir acima do valor especificado no atributo staticCompressionDisableCpuUsage , a compactação estática será desabilitada. O valor padrão é 50. |
staticCompressionIgnoreHitFrequency |
Atributo booliano opcional. Se True, desabilita o comportamento de que um arquivo estático é compactado somente se ele for atingido um determinado número de vezes em um período de tempo. Você pode encontrar circunstâncias em que deseja que o conteúdo estático seja sempre compactado para menor uso de largura de banda. Por exemplo, talvez você queira sempre compactar conteúdo estático quando um sistema emprega um balanceador de carga com cache de borda entre um servidor Web e o solicitante, fazendo com que um arquivo descompactado seja armazenado em cache no servidor de borda porque as solicitações subsequentes não alcançariam o servidor Web. Se o comportamento não estiver desabilitado, uma taxa de ocorrência maior ou igual a dois acertos em 10 segundos resultará na compactação do conteúdo estático. Uma taxa de ocorrência menor resultaria na não compactação do conteúdo. O valor padrão é False. |
Elementos filho
| Elemento | Descrição |
|---|---|
scheme |
Elemento opcional. Especifica o esquema de compactação (Gzip ou Deflate) que o IIS usa para compactar solicitações de cliente. Esse elemento só pode ser configurado no nível do servidor. |
dynamicTypes |
Elemento opcional. Especifica as configurações para compactação dinâmica. Para versões do IIS anteriores ao IIS 10.0, só pode ser configurado no nível do servidor. Para o IIS 10.0 e posterior, também pode ser configurado no nível do site. |
staticTypes |
Elemento opcional. Especifica as configurações para compactação estática. Para o IIS 10.0 e posterior, só pode ser configurado no nível do site. Para versões do IIS anteriores ao IIS 10.0, só pode ser configurado no nível do servidor. Para o IIS 10.0 e posterior, também pode ser configurado no nível do site. |
Exemplo de configuração
O elemento padrão <httpCompression> a seguir é configurado no arquivo ApplicationHost.config no IIS 7. Esta seção de configuração herda as configurações padrão, a menos que você use o <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>
Exemplo de código
Os exemplos de código a seguir adicionarão os tipos MIME para documentos do Office 2003 à lista de tipos de compactação dinâmica.
Observação
Os documentos do Office 2007 usam compactação interna, portanto, não precisam ser compactados pelo 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
Observação
Você deve ter certeza de definir o parâmetro de confirmação para apphost quando usar AppCmd.exe para definir essas configurações. Isso confirma as configurações para a seção local apropriada no arquivo 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()
Os exemplos de código a seguir adicionarão os tipos MIME para documentos do Office 2003 à lista de tipos de compactação estática.
(> [! OBSERVAÇÃO]
Os documentos do Office 2007 usam compactação interna, portanto, não precisam ser compactados pelo 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
Observação
Você deve ter certeza de definir o parâmetro de confirmação para apphost quando usar AppCmd.exe para definir essas configurações. Isso confirma as configurações para a seção local apropriada no arquivo 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()