Compactação HTTP <httpCompression>
Visão geral
O elemento <httpCompression>
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 os IIS e os 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 os IIS 7 sempre retornarão conteúdo descompactado.
Há dois tipos diferentes de compactação que os IIS 7 usam:
Compactação estática:
Os IIS 7 armazenam 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 os IIS 7 compactam 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 os IIS 7 compactam arquivos estáticos com base no uso da CPU.
Você deve usar a 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 arquivos *.jpg e *.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, os IIS 7 executam 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 o conteúdo estático e o 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 conteúdo ASP (Active Server Pages) ou ASP.NET. Como o conteúdo dinâmico deve ser alterado com frequência, os IIS 7 não o armazena em cache.
Os atributos dynamicCompressionEnableCpuUsage e dynamicCompressionDisableCpuUsage especificam quando os IIS 7 compactam arquivos dinâmicos com base no uso da CPU.
Os IIS 7 dão 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 Comments (RFC).
- GZIP (zip GNU) – essa forma de compactação está documentada na especificação 1952 do Request For Comments (RFC).
Cada um desses dois esquemas de compactação pode ser habilitado usando o elemento <schemes>
do elemento <httpCompression>
.
Observação
Embora o elemento <httpCompression>
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 | Observações |
---|---|
IIS 10.0 | O elemento <httpCompression> não foi modificado nos IIS 10.0. |
IIS 8.5 | O atributo staticCompressionIgnoreHitFrequency foi adicionado aos IIS 8.5. |
IIS 8.0 | O elemento <httpCompression> não foi modificado nos IIS 8.0. |
IIS 7.5 | Nos IIS 7.5, o valor padrão do atributo minFileSizeForComp foi alterado e o atributo dynamicCompressionBufferLimit foi adicionado. |
IIS 7.0 | O elemento <httpCompression> foi introduzido no IIS 7.0. |
IIS 6,0 | O elemento <httpCompression> substitui as seguintes propriedades de metabase dos IIS 6.0:
|
Instalação
A compactação HTTP geralmente está disponível na instalação padrão do IIS 7 e posterior. No entanto, somente 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 R2 ou Windows Server 2012
- Na barra de tarefas, clique em Gerenciador do Servidor.
- 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 de Servidor, expanda Servidor Web (IIS), expanda Servidor Web, expanda Desempenho e selecione Compactação de Conteúdo Estático e/ou Compactação de Conteúdo Dinâmico. Clique em Avançar.
. - 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 Iniciar, 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.
- Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar recursos do Windows.
- Expanda Serviços de Informações da Internet, expanda Serviços da World Wide Web, expanda 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, vá para Ferramentas Administrativas e clique em Gerenciador do Servidor.
- No painel de hierarquia do Gerenciador do Servidor, 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údo Dinâmico se quiser instalar a 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, depois, em Painel de Controle.
- Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar Recursos do Windows.
- Expanda Serviços de Informações da Internet e, em seguida, Serviços World Wide Web e, em seguida, Recursos de Desempenho.
- Selecione Compactação Dinâmica Http, se desejar instalar a compactação dinâmica, e Compactação de Conteúdo Estático, se desejar instalar a compactação estática.
- Clique em OK.
Instruções
Como habilitar ou desabilitar a compactação estática e dinâmica para um site ou aplicativo
Abra o Gerenciador dos Serviços de Informações da Internet (IIS):
Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:
- Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador do IIS (Serviços de Informações da Internet).
Se você estiver usando o Windows 8 ou 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 em Gerenciador do IIS (Serviços de Informações da Internet).
Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:
- Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do IIS (Serviços de Informações da Internet).
Se você estiver usando o Windows Vista ou Windows 7:
- Na barra de tarefas, selecione Iniciar e selecione Painel de Controle.
- Clique duas vezes em Ferramentas Administrativas e clique duas vezes em 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 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 dos Serviços de Informações da Internet (IIS):
Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:
- Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador do IIS (Serviços de Informações da Internet).
Se você estiver usando o Windows 8 ou 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 em Gerenciador do IIS (Serviços de Informações da Internet).
Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:
- Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do IIS (Serviços de Informações da Internet).
Se você estiver usando o Windows Vista ou Windows 7:
- Na barra de tarefas, selecione Iniciar e selecione Painel de Controle.
- Clique duas vezes em Ferramentas Administrativas e clique duas vezes em 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 dos Serviços de Informações da Internet (IIS):
Se você estiver usando o Windows Server 2012 R2:
- Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos 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 em Gerenciador dos Serviços de Informações da Internet (IIS).
No painel Conexões, selecione o servidor e clique duas vezes em Editor de Configuração.
No Editor de Configuração, para a seção, selecione system.webServer e, em seguida, selecione httpCompression.
Para staticCompressionIgnoreHitFrequency, insira
True
para desabilitar o comportamento de que um arquivo estático é compactado somente se ele for acessado um determinado número de vezes em um período de tempo ou insiraFalse
para habilitar o comportamento.
No painel Ações, clique em Aplicar.
Configuração
Atributos
Atributo | Descrição |
---|---|
cacheControlHeader |
Atributo de cadeia de caracteres opcional. Especifica a diretiva que os IIS adicionam 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 dos arquivos estáticos são temporariamente armazenadas e armazenadas em cache. Observação: nos IIS 6.0, o caminho de diretório padrão para arquivos compactados temporários dos 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 os IIS armazenarão 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. Observação: esse atributo foi adicionado aos 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. Observação: esse atributo atua como um limite superior da CPU no qual a compactação dinâmica é 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 precisa estar entre 0 e 100. A utilização média da CPU é calculada a cada 30 segundos. Observação: esse atributo atua como um limite de CPU inferior abaixo do qual a compactação dinâmica é ativada. Quando a utilização da CPU ficar 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 (Serviço de Publicação na World Wide Web) 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 bytes 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, os IIS excluem os arquivos menos usados recentemente até que um nível de uso de 90% seja atingido. Observação: nos IIS 6.0, esse limite foi expresso em bytes; nos IIS 7, ele é expresso em megabytes. Nos 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 quilobytes que um arquivo deve conter para usar a compactação sob demanda. O valor padrão dos IIS 7.5 é 2700 ; para os 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. Observação: 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. Observação: 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. Observação: 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 precisa estar entre 0 e 100. A utilização média da CPU é calculada a cada 30 segundos. Observação: 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á reabilitada. O valor padrão é 100 . |
staticCompressionEnableCpuUsage |
Atributo uint opcional. Especifica o percentual de utilização da CPU na qual a compactação estática é habilitada. O valor precisa estar entre 0 e 100. A utilização média da CPU é calculada a cada 30 segundos. Observação: essa propriedade atua como um limite de CPU inferior abaixo do qual a compactação estática é ativada. Quando a utilização da CPU ficar 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 acessado 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 reduzir o 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 os IIS usam para compactar solicitações de cliente. |
dynamicTypes |
Elemento opcional. Especifica as configurações para compactação dinâmica. |
staticTypes |
Elemento opcional. Especifica as configurações para compactação estática. |
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 definições de configuração padrão, a menos que você use o 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>
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 pelos 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
Defina o parâmetro commit para apphost
quando usar AppCmd.exe para definir essas configurações. Isso confirma os conjuntos de configurações para a seção de local apropriado 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
Defina o parâmetro commit para apphost
quando usar AppCmd.exe para definir essas configurações. Isso confirma os conjuntos de configurações para a seção de local apropriado 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()