HTTP Compression <httpCompression>

Panoramica

L'elemento <httpCompression> specifica le impostazioni di compressione HTTP per Internet Information Services (IIS) 7. La compressione HTTP può offrire tempi di trasmissione più rapidi tra i browser IIS e client che possono accettare file compressi.

Nota

Un client HTTP deve avviare la comunicazione per il contenuto compresso inviando l'intestazione HTTP Accept-encoding appropriata. Se un client non è in grado di compressione HTTP, non passerà tale intestazione e IIS 7 restituirà sempre contenuto non compresso.

Esistono due tipi diversi di compressione usati da IIS 7:

  • Compressione statica:

    IIS 7 memorizza nella cache il contenuto statico compresso nel percorso specificato dall'attributo della directory , che aumenta le prestazioni di compressione eliminando la necessità di ricomprimere il contenuto che è già stato compresso. Dopo che IIS 7 ha compresso un file, alle richieste successive viene assegnata la copia compressa del file dalla directory della cache.

    Gli attributi staticCompressionEnableCpuUsage e staticCompressionDisableCpuUsage specificano quando IIS 7 comprime i file statici in base all'utilizzo della CPU.

    È consigliabile usare la compressione statica con file che in genere non cambiano, ad esempio file HTML (*.html, *.htm), file di testo (*.txt), documenti di Microsoft Office (*.doc, *.xls, *.ppt) e così via. Le dimensioni di questi file possono essere ridotte tramite la compressione, riducendo i tempi di download per le richieste client e riducendo la larghezza di banda nel server.

    Nota

    I file di immagine come *.jpg e *.png file sono anche file statici, ma in genere non traggono vantaggio dalla compressione HTTP perché questi file di immagine sono già compressi.

  • Compressione dinamica:

    A differenza della compressione statica, IIS 7 esegue la compressione dinamica ogni volta che un client richiede il contenuto, ma la versione compressa non viene memorizzata nella cache su disco. Questa modifica viene apportata a causa della differenza principale tra contenuto statico e dinamico. Il contenuto statico non cambia. Tuttavia, il contenuto dinamico è in genere contenuto creato da un'applicazione e pertanto cambia spesso, ad esempio pagine ASP (Active Server Pages) o contenuto ASP.NET. Poiché il contenuto dinamico deve cambiare spesso, IIS 7 non lo memorizza nella cache.

    Gli attributi dynamicCompressionEnableCpuUsage e dynamicCompressionDisableCpuUsage specificano quando IIS 7 comprime i file dinamici in base all'utilizzo della CPU.

IIS 7 supporta due diversi schemi di compressione standard del settore:

Ognuno di questi due schemi di compressione può essere abilitato usando l'elemento <schemes> dell'elemento <httpCompression> .

Nota

Mentre l'elemento <httpCompression> specifica le impostazioni di compressione HTTP per Internet Information Services (IIS) 7, l'elemento <urlCompression> specifica se la compressione è abilitata per uno spazio dei nomi URL.

Compatibilità

Versione Note
IIS 10.0 L'elemento <httpCompression> non è stato modificato in IIS 10.0.
IIS 8,5 L'attributo staticCompressionIgnoreHitFrequency è stato aggiunto in IIS 8.5.
IIS 8,0 L'elemento <httpCompression> non è stato modificato in IIS 8.0.
IIS 7,5 In IIS 7.5 il valore predefinito per l'attributo minFileSizeForComp è stato modificato e l'attributo dynamicCompressionBufferLimit è stato aggiunto.
IIS 7.0 L'elemento <httpCompression> è stato introdotto in IIS 7.0.
IIS 6.0 L'elemento <httpCompression> sostituisce le proprietà della metabase IIS 6.0 seguenti:
  • HcCacheControlHeader
  • HcCompressionDirectory
  • HcDoDiskSpaceLimiting
  • HcExpiresHeader
  • HcMaxDiskSpaceUsage
  • HcMinFileSizeForComp
  • HcNoCompressionForHttp10
  • HcNoCompressionForProxies
  • HcNoCompressionForRange
  • HcSendCacheHeaders

Installazione

La compressione HTTP è in genere disponibile nell'installazione predefinita di IIS 7 e versioni successive. Tuttavia, per impostazione predefinita viene installata solo la compressione statica. Per installare la compressione statica o dinamica, seguire questa procedura.

Windows Server 2012 o Windows Server 2012 R2

  1. Sulla barra delle applicazioni fare clic su Server Manager.
  2. In Server Manager fare clic sul menu Gestisci e quindi su Aggiungi ruoli e funzionalità.
  3. Nella procedura guidata Aggiungi ruoli e funzionalità fare clic su Avanti. Selezionare il tipo di installazione e fare clic su Avanti. Selezionare il server di destinazione e fare clic su Avanti.
  4. Nella pagina Ruoli server espandere Server Web (IIS), server Web, prestazioni, quindi selezionare Compressione contenuto statico e/o Compressione contenuto dinamico. Fare clic su Avanti.
    Screenshot del nodo Server Web e prestazioni con compressione contenuto statica selezionata e Compressione contenuto dinamica evidenziata. .
  5. Nella pagina Selezione funzionalità fare clic su Avanti.
  6. Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
  7. Nella pagina Risultati fare clic su Chiudi.

Windows 8 o Windows 8.1

  1. Nella schermata Start spostare il puntatore fino all'angolo inferiore sinistro, fare clic con il pulsante destro del mouse sul pulsante Start e quindi scegliere Pannello di controllo.
  2. In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva funzionalità di Windows.
  3. Espandere Internet Information Services, servizi Web globali, funzionalità prestazioni, quindi selezionare Compressione contenuto dinamico e/o Compressione contenuto statico.
    Screenshot del riquadro World Wide Web and Performance Features espanso che mostra l'opzione Compressione contenuto dinamica e Compressione contenuto statico selezionata.
  4. Fare clic su OK.
  5. Fare clic su Close.

Windows Server 2008 o Windows Server 2008 R2

  1. Sulla barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic su Server Manager.
  2. Nel riquadro della gerarchia Server Manager espandere Ruoli, quindi fare clic su Server Web (IIS).
  3. Nel riquadro Server Web (IIS) scorrere fino alla sezione Servizi ruolo e quindi fare clic su Aggiungi servizi ruolo.
  4. Nella pagina Selezione servizi ruolo della Procedura guidata Aggiungi servizi ruoloselezionareCompressione contenuto dinamico se si desidera installare la compressione dinamica e la compressione contenuto statica se si vuole installare la compressione statica e quindi fare clic su Avanti.
    Screenshot del nodo Prestazioni espanso nella pagina Aggiungi servizi ruolo con compressione del contenuto dinamico evidenziata.
  5. Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
  6. Nella pagina Risultati fare clic su Chiudi.

Windows Vista o Windows 7

  1. Sulla barra delle applicazioni fare clic su Start e quindi su Pannello di controllo.
  2. In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva funzionalità di Windows.
  3. Espandere Internet Information Services, quindi Servizi Web a livello mondiale, quindi Funzionalità prestazioni.
  4. Selezionare Http Compression Dynamic se si vuole installare la compressione dinamica e la compressione statica del contenuto se si vuole installare la compressione statica.
    Screenshot del nodo Funzionalità prestazioni espanso e dell'opzione H T T T P Compression Dynamic selezionata.
  5. Fare clic su OK.

Procedure

Come abilitare o disabilitare la compressione statica e dinamica per un sito o un'applicazione

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 o Windows Server 2012 R2:

      • Sulla barra delle applicazioni fare clic su Server Manager, scegliere Strumenti, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows 8 o Windows 8.1:

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

      • Nella barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione e quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Vista o Windows 7:

      • Nella barra delle applicazioni fare clic su Start e quindi fare clic su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni passare alla connessione, al sito, all'applicazione o alla directory per cui si vuole abilitare la compressione.

  3. Nel riquadro Home fare doppio clic su Compressione.
    Screenshot della home page del sito Web predefinito che mostra la compressione selezionata.

  4. Nel riquadro Compressione selezionare le caselle per abilitare la compressione statica o dinamica oppure rimuovere i segni di spunta per disabilitare la compressione statica o dinamica.
    Screenshot che mostra il riquadro Compressione con Abilita compressione del contenuto dinamico e Abilita caselle di compressione del contenuto statico selezionate.

  5. Dopo aver completato i passaggi precedenti, fare clic su Applica nel riquadro Azioni .

Come abilitare o disabilitare la compressione statica e dinamica per un server

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 o Windows Server 2012 R2:

      • Nella barra delle applicazioni fare clic su Server Manager, scegliere Strumenti e quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows 8 o Windows 8.1:

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

      • Nella barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione e quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Vista o Windows 7:

      • Nella barra delle applicazioni fare clic su Start e quindi fare clic su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni evidenziare il nome del server.

  3. Nel riquadro Home del server fare doppio clic su Compressione.
    Screenshot che mostra i server Home riquadro con compressione evidenziata.

  4. Nel riquadro Compressione selezionare le caselle per abilitare la compressione statica o dinamica oppure rimuovere i segni di spunta per disabilitare la compressione statica o dinamica.
    Screenshot della pagina Compressione che mostra entrambe le caselle per Abilitare la compressione dinamica del contenuto e Abilitare la compressione statica del contenuto selezionata.

  5. Dopo aver completato i passaggi precedenti, fare clic su Applica nel riquadro Azioni .

Come configurare staticCompressionIgnoreHitFrequency

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 R2:

      • Nella barra delle applicazioni fare clic su Server Manager, scegliere Strumenti e quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows 8.1:

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni selezionare il server e quindi fare doppio clic su Editor di configurazione.

  3. Nell'editor di configurazione selezionare system.webServer e quindi httpCompression.

  4. Per staticCompressionIgnoreHitFrequency, immettere True per disabilitare il comportamento compresso di un file statico solo se viene raggiunto un determinato numero di volte entro un periodo di tempo o immettere False per abilitare il comportamento.
    Screenshot che mostra la pagina Editor di configurazione con True immessa per l'opzione Di compressione statica Ignora frequenza di hit.

  5. Nel riquadro Azioni fare clic su Applica.

Configurazione

Attributi

Attributo Descrizione
cacheControlHeader Attributo stringa facoltativo.

Specifica la direttiva aggiunta da IIS all'intestazione Cache-Control che esegue l'override dell'intestazione Scadenza HTTP. Questo attributo garantisce che i client e i server proxy meno recenti non tentino di memorizzare nella cache i file compressi. Per abilitare questa impostazione, è necessario impostare l'attributo sendCacheHeaders su true. Il servizio WWW deve essere riavviato prima di apportare modifiche a questa proprietà.

Il valore predefinito è max-age=86400.
directory Attributo stringa facoltativo.

Specifica la directory in cui vengono archiviate e memorizzate nella cache le versioni compresse dei file statici.

Nota: In IIS 6.0 il percorso predefinito della directory per i file compressi temporanei IIS è %windir%\IIS Temporary Compressed Files.

Il valore predefinito è %SystemDrive%\inetpub\temp\IIS Temporary Compressed Files.
doDiskSpaceLimiting Attributo booleano facoltativo.

Specifica se esiste un limite per la quantità di spazio su disco che tutti i file compressi, archiviati nella directory di compressione specificata dall'attributo directory, possono occupare.

Il valore predefinito è true.
dynamicCompressionBufferLimit Attributo uint facoltativo.

Specifica la quantità massima di dati compressi dinamicamente memorizzati nel buffer di IIS prima di scaricare il buffer in un client. Questo riduce la quantità di memoria necessaria per eseguire la compressione dinamica.

Nota: Questo attributo è stato aggiunto in IIS 7.5.

Il valore predefinito è 65536.
dynamicCompressionDisableCpuUsage Attributo uint facoltativo.

Specifica la percentuale di utilizzo della CPU in corrispondenza della quale verrà disabilitata la compressione dinamica.

Nota: Questo attributo funge da limite di CPU superiore a cui viene disattivata la compressione dinamica. Quando l'utilizzo della CPU è inferiore al valore specificato nell'attributo dynamicCompressionEnableCpuUsage , la compressione dinamica verrà riabilitata.

Il valore predefinito è 90.
dynamicCompressionEnableCpuUsage Attributo uint facoltativo.

Specifica la percentuale di utilizzo della CPU sotto la quale verrà abilitata la compressione dinamica. Il valore deve essere compreso tra 0 e 100. L'utilizzo medio della CPU viene calcolato ogni 30 secondi.

Nota: Questo attributo funge da limite di CPU inferiore al quale viene attivata la compressione dinamica. Quando l'utilizzo della CPU supera il valore specificato nell'attributo dynamicCompressionDisableCpuUsage , la compressione dinamica verrà disabilitata.

Il valore predefinito è 50.
expiresHeader Attributo stringa facoltativo.

Specifica il contenuto dell'intestazione Scadenza HTTP inviata con tutti i file compressi richiesti, insieme all'intestazione Cache-Control specificata nell'attributo cacheControlHeader . Questa combinazione di intestazioni garantisce che i client e i server proxy meno recenti non tentino di memorizzare nella cache i file compressi. Per abilitare questa impostazione, è necessario impostare l'attributo sendCacheHeaders su true. Il servizio World Wide Web Publishing Service (WWW service) deve essere riavviato prima che le modifiche apportate a questa proprietà siano effettive.

Il valore predefinito è Wed, 01 Jan 1997 12:00:00 GMT.
maxDiskSpaceUsage Attributo uint facoltativo.

Specifica il numero di megabyte di spazio su disco che i file compressi possono occupare nella directory di compressione. Quando lo spazio usato dai file compressi supera il 90% del valore in questo attributo, IIS elimina i file usati meno di recente fino a quando non viene raggiunto un livello di utilizzo del 90%.

Nota: In IIS 6.0 questo limite è stato espresso in byte; in IIS 7, viene espresso in megabyte. In IIS 7 il limite viene applicato per ogni pool di applicazioni.

Il valore predefinito è 100.
minFileSizeForComp Attributo uint facoltativo.

Specifica il numero minimo di kilobyte che deve contenere un file per usare la compressione su richiesta.

Il valore predefinito per IIS 7.5 è ; per IIS 7.0 il valore predefinito era 2700256.
noCompressionForHttp10 Attributo booleano facoltativo.

Specifica se la compressione è disabilitata per le richieste che contengono un numero di versione HTTP 1.0.

Nota: Alcuni client HTTP 1.0 non gestiscono correttamente la memorizzazione nella cache degli oggetti compressi. È possibile usare questa impostazione per evitare di restituire un file compresso a un client che non può decomprimerlo.

Il valore predefinito è true.
noCompressionForProxies Attributo booleano facoltativo.

Specifica se la risposta HTTP 1.1 è disabilitata per le richieste di compressione provenienti da server proxy.

Nota: Alcuni server proxy HTTP non gestiscono correttamente la memorizzazione nella cache degli oggetti compressi. È possibile usare questa impostazione per evitare di restituire un file compresso a un server proxy che non può decomprimerlo.

Il valore predefinito è true.
noCompressionForRange Attributo booleano facoltativo.

Specifica se la compressione è disabilitata per le richieste HTTP che includono l'intestazione Range.

Nota: Alcuni client non possono gestire correttamente le richieste di intervallo. È possibile usare questa impostazione per evitare di restituire un file compresso a un client che non può decomprimerlo.

Il valore predefinito è true.
sendCacheHeaders Attributo booleano facoltativo.

Specifica se le intestazioni configurate in cacheControlHeader e scadonoHeader vengono inviate con ogni risposta compressa.

Il valore predefinito è false.
staticCompressionDisableCpuUsage Attributo uint facoltativo.

Specifica la percentuale di utilizzo della CPU in corrispondenza della quale è disabilitata la compressione statica. Il valore deve essere compreso tra 0 e 100. L'utilizzo medio della CPU viene calcolato ogni 30 secondi.

Nota: Questa proprietà funge da limite di CPU superiore a cui viene disattivata la compressione statica. Quando l'utilizzo della CPU è inferiore al valore specificato nell'attributo staticCompressionEnableCpuUsage , la compressione statica verrà riattivata.

Il valore predefinito è 100.
staticCompressionEnableCpuUsage Attributo uint facoltativo.

Specifica la percentuale di utilizzo della CPU in corrispondenza della quale è abilitata la compressione statica. Il valore deve essere compreso tra 0 e 100. L'utilizzo medio della CPU viene calcolato ogni 30 secondi.

Nota: Questa proprietà funge da limite di CPU inferiore al quale viene attivata la compressione statica. Quando l'utilizzo della CPU aumenta al di sopra del valore specificato nell'attributo staticCompressionDisableCpuUsage , la compressione statica verrà disabilitata.

Il valore predefinito è 50.
staticCompressionIgnoreHitFrequency Attributo booleano facoltativo.

Se True, disabilita il comportamento che un file statico viene compresso solo se viene raggiunto un determinato numero di volte entro un periodo di tempo. È possibile che si verifichino circostanze in cui si desidera che il contenuto statico venga sempre compresso in modo da ridurre l'utilizzo della larghezza di banda. Ad esempio, è possibile comprimere sempre il contenuto statico quando un sistema utilizza un servizio di bilanciamento del carico con memorizzazione nella cache perimetrale tra un server Web e il richiedente, causando la memorizzazione nella cache di un file non compresso nel server perimetrale perché le richieste successive non raggiungerebbero il server Web.

Se il comportamento non è disabilitato, una frequenza di hit maggiore o uguale a due colpi in 10 secondi comporterà la compressione del contenuto statico. Una frequenza di hit più piccola comporta la compressione del contenuto.

Il valore predefinito è False.

Elementi figlio

Elemento Descrizione
scheme Elemento facoltativo.

Specifica lo schema di compressione (Gzip o Deflate) IIS usa per comprimere le richieste client.
dynamicTypes Elemento facoltativo.

Specifica le impostazioni di configurazione per la compressione dinamica.
staticTypes Elemento facoltativo.

Specifica le impostazioni di configurazione per la compressione statica.

Esempio di configurazione

L'elemento predefinito <httpCompression> seguente è configurato nel file ApplicationHost.config in IIS 7. Questa sezione di configurazione eredita le impostazioni di configurazione predefinite a meno che non si usi l'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>

Codice di esempio

Gli esempi di codice seguenti aggiungeranno i tipi MIME per i documenti di Office 2003 all'elenco dei tipi di compressione dinamica.

Nota

I documenti di Office 2007 usano la compressione predefinita, quindi non devono essere compressi da 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

Nota

È necessario assicurarsi di impostare il parametro commit su apphost quando si usa AppCmd.exe per configurare queste impostazioni. Questa operazione esegue il commit delle impostazioni di configurazione nella sezione percorso appropriata nel file di 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()

Gli esempi di codice seguenti aggiungeranno i tipi MIME per i documenti di Office 2003 all'elenco di tipi di compressione statica.

(> [! NOTA]

I documenti di Office 2007 usano la compressione predefinita, quindi non devono essere compressi da 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

È necessario assicurarsi di impostare il parametro commit su apphost quando si usa AppCmd.exe per configurare queste impostazioni. Questa operazione esegue il commit delle impostazioni di configurazione nella sezione percorso appropriata nel file di 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()