HTTP 圧縮: <httpCompression>

概要

<httpCompression> 要素は、インターネット インフォメーション サービス (IIS) 7 の HTTP 圧縮の設定を指定します。 HTTP 圧縮を使うと、IIS と、圧縮ファイルを受け入れることができるクライアント ブラウザー間の転送時間を短縮できます。

Note

HTTP クライアントは、適切な HTTP Accept-encoding ヘッダーを送信して、圧縮されたコンテンツの通信を開始する必要があります。 HTTP 圧縮の機能がないクライアントはそのヘッダーを渡さず、IIS 7 は常に圧縮されていないコンテンツを返します。

IIS 7 では、2 種類の圧縮が使われます。

  • 静的圧縮:

    IIS 7 では、圧縮された静的コンテンツは directory 属性で指定されているパスにキャッシュされます。これにより、既に圧縮されているコンテンツを再圧縮する必要がなくなり、圧縮パフォーマンスが向上します。 IIS 7 でファイルが圧縮された後、それ以降の要求にはキャッシュ ディレクトリからファイルの圧縮されたコピーが提供されます。

    staticCompressionEnableCpuUsagestaticCompressionDisableCpuUsage 属性は、IIS 7 が静的ファイルを圧縮するタイミングを CPU 使用率に基づいて指定します。

    HTML ファイル (*.html、*.htm)、テキスト ファイル (*.txt)、Microsoft Office ドキュメント (*.doc、*.xls、*.ppt) など、通常は変化しないファイルでは、静的圧縮を使う必要があります。これらのファイルのサイズは圧縮によって小さくでき、これにより、クライアント要求のダウンロード時間が短縮され、サーバーでの帯域幅が減少します。

    Note

    *.jpg や *.png ファイルなどの画像ファイルも静的ファイルですが、通常、これらの画像ファイルは既に圧縮されているため、HTTP 圧縮による利点はありません。

  • 動的圧縮:

    静的圧縮とは異なり、IIS 7 は、クライアントがコンテンツを要求するたびに動的圧縮を実行しますが、圧縮されたバージョンはディスクにキャッシュされません。 この変更は、静的コンテンツと動的コンテンツの主な違いによるものです。 静的コンテンツは変化しません。 一方、Active Server Pages (ASP) や ASP.NET コンテンツなどの動的コンテンツは、通常、アプリケーションによって作成されるコンテンツであるため、頻繁に変化します。 動的コンテンツは頻繁に変更されるため、IIS 7 ではキャッシュされません。

    dynamicCompressionEnableCpuUsagedynamicCompressionDisableCpuUsage 属性は、IIS 7 が動的ファイルを圧縮するタイミングを CPU 使用率に基づいて指定します。

IIS 7 では、2 つの異なる業界標準の圧縮スキームがサポートされています。

これら 2 つの圧縮スキームはそれぞれ、<httpCompression> 要素の <schemes> 要素を使って有効にできます。

Note

<httpCompression> 要素ではインターネット インフォメーション サービス (IIS) 7 に対する HTTP 圧縮の設定を指定するのに対し、<urlCompression> 要素では URL 名前空間に対して圧縮を有効にするかどうかを指定します。

互換性

バージョン メモ
IIS 10.0 <httpCompression> 要素は、IIS 10.0 では変更されませんでした。
IIS 8.5 staticCompressionIgnoreHitFrequency 属性は IIS 8.5 で追加されました。
IIS 8.0 <httpCompression> 要素は、IIS 8.0 では変更されませんでした。
IIS 7.5 IIS 7.5 では、minFileSizeForComp 属性の既定値が変更され、dynamicCompressionBufferLimit 属性が追加されました。
IIS 7.0 IIS 7.0 では、<httpCompression> 要素が導入されました。
IIS 6.0 <httpCompression> 要素は、次の IIS 6.0 メタベース プロパティを置き換えます。
  • HcCacheControlHeader
  • HcCompressionDirectory
  • HcDoDiskSpaceLimiting
  • HcExpiresHeader
  • HcMaxDiskSpaceUsage
  • HcMinFileSizeForComp
  • HcNoCompressionForHttp10
  • HcNoCompressionForProxies
  • HcNoCompressionForRange
  • HcSendCacheHeaders

段取り

HTTP 圧縮は通常、IIS 7 以降の既定のインストールで使用できます。 ただし、既定では静的圧縮のみがインストールされます。 静的または動的圧縮をインストールするには、次の手順を使います。

Windows Server 2012 または Windows Server 2012 R2

  1. タスク バーで [サーバー マネージャー]をクリックします。
  2. [サーバー マネージャー] で、[管理] メニューをクリックし、[役割と機能の追加] をクリックします。
  3. 役割と機能の追加ウィザードで、[次へ] をクリックします。 インストールの種類を選択し、[次へ] をクリックします。 対象サーバーを選択し、[次へ] をクリックします。
  4. [サーバーの役割] ページで、[Web サーバー (IIS)][Web サーバー] の順に展開し、[パフォーマンス] を展開して、[静的なコンテンツ圧縮] または [動的コンテンツ圧縮]、あるいはその両方を選択します。 次へ をクリックします。
    Screenshot of Web Server and Performance node with Static Content Compression selected and Dynamic Content Compression highlighted.
  5. [機能の選択] ページで、[次へ] をクリックします。
  6. [インストール オプションの確認] ページで、[インストール] をクリックします。
  7. [結果] ページで、 [閉じる]をクリックします。

Windows 8 または Windows 8.1

  1. [スタート] 画面で、ポインターを左下隅まで移動し、[スタート] ボタンを右クリックし、[コントロール パネル] をクリックします。
  2. [コントロール パネル][プログラムと機能] をクリックし、[Windows の機能の有効化または無効化] をクリックします。
  3. [インターネット インフォメーション サービス][World Wide Web サービス][パフォーマンス機能] の順に展開し、[動的なコンテンツ圧縮] または [静的なコンテンツ圧縮] を選択します。
    Screenshot of World Wide Web and Performance Features pane expanded showing Dynamic Content Compression and Static Content Compression selected.
  4. OK をクリックします。
  5. 閉じるをクリックします。

Windows Server 2008 または Windows Server 2008 R2

  1. タスク バーの [スタート] をクリックし、[管理ツール] をポイントして、[サーバー マネージャー] をクリックします。
  2. [サーバー マネージャー] 階層ウィンドウで [役割] を展開し、[Web サーバー (IIS)] をクリックします。
  3. [Web サーバー (IIS)] ウィンドウで、[役割サービス] セクションまでスクロールし、[役割サービスの追加] をクリックします。
  4. 役割サービスの追加ウィザード[役割サービスの選択] ページで、動的なコンテンツ圧縮をインストールする場合は [動的なコンテンツ圧縮] を選択し、静的なコンテンツ圧縮をインストールする場合は [静的なコンテンツ圧縮] を選択し、[次へ] を選択します。
    Screenshot of Performance node expanded in Add Role Services page with Dynamic Content Compression highlighted.
  5. [インストール オプションの確認] ページで、[インストール] をクリックします。
  6. [結果] ページで、 [閉じる]をクリックします。

Windows Vista または Windows 7

  1. タスク バーで、[スタート][コントロール パネル] の順にクリックします。
  2. [コントロール パネル][プログラムと機能] をクリックし、[Windows の機能の有効化または無効化] をクリックします。
  3. [インターネット インフォメーション サービス][World Wide Web サービス][パフォーマンス機能] の順に展開します。
  4. 動的な圧縮をインストールする場合は [動的 HTTP 圧縮] を選択し、静的なコンテンツ圧縮をインストールする場合は [静的なコンテンツ圧縮] を選択します。
    Screenshot of Performance Features node expanded and H T T P Compression Dynamic selected.
  5. OK をクリックします。

操作方法

サイトまたはアプリケーションの静的圧縮と動的圧縮を有効または無効にする方法

  1. インターネット インフォメーション サービス (IIS) マネージャーを開きます。

    • Windows Server 2012 または Windows Server 2012 R2 を使用している場合:

      • タスク バーで、[サーバー マネージャー] をクリックし、[ツール][インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
    • Windows 8 または Windows 8.1 を使用している場合:

      • Windows キーを押しながら文字 X を押し、[コントロール パネル] をクリックします。
      • [管理ツール] をクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
    • Windows Server 2008 または Windows Server 2008 R2 を使用している場合:

      • タスク バーの [スタート] をクリックし、[管理ツール] をポイントして、[インターネット インフォメーション サービス (IIS) マネージャー] をクリックします。
    • Windows Vista または Windows 7 を使用している場合:

      • タスク バーで、[スタート][コントロール パネル] の順にクリックします。
      • [管理ツール] をダブルクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
  2. [接続] ウィンドウで、圧縮を有効にする接続、サイト、アプリケーション、またはディレクトリに移動します。

  3. [ホーム] ウィンドウで、[圧縮] をダブルクリックします。
    Screenshot of Default Web Site Home page showing Compression selected.

  4. [圧縮] ウィンドウで、静的圧縮または動的圧縮を有効にするボックスをオンにするか、チェック マークをオフにして静的圧縮または動的圧縮を無効にします。
    Screenshot shows Compression pane with Enable dynamic content compression and Enable static content compression boxes both selected.

  5. 前述の手順を完了したら、[操作] ウィンドウで [適用] をクリックします。

サーバーの静的圧縮と動的圧縮を有効または無効にする方法

  1. インターネット インフォメーション サービス (IIS) マネージャーを開きます。

    • Windows Server 2012 または Windows Server 2012 R2 を使用している場合:

      • タスク バーで、[サーバー マネージャー] をクリックし、[ツール][インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
    • Windows 8 または Windows 8.1 を使用している場合:

      • Windows キーを押しながら文字 X を押し、[コントロール パネル] をクリックします。
      • [管理ツール] をクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
    • Windows Server 2008 または Windows Server 2008 R2 を使用している場合:

      • タスク バーの [スタート] をクリックし、[管理ツール] をポイントして、[インターネット インフォメーション サービス (IIS) マネージャー] をクリックします。
    • Windows Vista または Windows 7 を使用している場合:

      • タスク バーで、[スタート][コントロール パネル] の順にクリックします。
      • [管理ツール] をダブルクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
  2. [接続] ウィンドウで、サーバーの名前を強調表示します。

  3. サーバーの [ホーム] ウィンドウで、[圧縮] をダブルクリックします。
    Screenshot shows servers Home pane with Compression highlighted.

  4. [圧縮] ウィンドウで、静的圧縮または動的圧縮を有効にするボックスをオンにするか、チェック マークをオフにして静的圧縮または動的圧縮を無効にします。
    Screenshot of Compression page showing both boxes for Enable dynamic content compression and Enable static content compression selected.

  5. 前述の手順を完了したら、[操作] ウィンドウで [適用] をクリックします。

staticCompressionIgnoreHitFrequency を構成する方法

  1. インターネット インフォメーション サービス (IIS) マネージャーを開きます。

    • Windows Server 2012 R2 を使用している場合:

      • タスク バーで、[サーバー マネージャー] をクリックし、[ツール][インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
    • Windows 8.1 を使用している場合:

      • Windows キーを押しながら文字 X を押し、[コントロール パネル] をクリックします。
      • [管理ツール] をクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
  2. [接続] ウィンドウでサーバーを選択して、[構成エディター] をダブルクリックします。

  3. 構成エディターのセクションで system.webServer を選択し、httpCompression を選択します。

  4. staticCompressionIgnoreHitFrequency に対し、「True」と入力して、静的ファイルが一定期間内に一定回数ヒットした場合にのみ圧縮される動作を無効にするか、「False」と入力してこの動作を有効にします。
    Screenshot shows Configuration Editor page with True entered for static Compression Ignore Hit Frequency option.

  5. [操作] ウィンドウで、[適用] をクリックします。

構成

属性

属性 説明
cacheControlHeader 省略可能な文字列属性。

HTTP Expires ヘッダーをオーバーライドする Cache-Control ヘッダーに IIS が追加するディレクティブを指定します。 この属性により、以前のクライアントとプロキシ サーバーは圧縮ファイルのキャッシュを試みなくなります。 この設定を有効にするには、sendCacheHeaders 属性を true に設定する必要があります。 このプロパティに対する変更を有効にするには、WWW サービスを再起動する必要があります。

既定値は max-age=86400 です。
directory 省略可能な文字列属性。

静的ファイルの圧縮バージョンが一時的に格納およびキャッシュされるディレクトリを指定します。

注: IIS 6.0 では、IIS の一時圧縮ファイルの既定のディレクトリ パスは %windir%\IIS Temporary Compressed Files でした。

既定値は %SystemDrive%\inetpub\temp\IIS Temporary Compressed Files です。
doDiskSpaceLimiting 省略可能な Boolean 属性です。

directory 属性で指定されている圧縮ディレクトリに格納されるすべての圧縮ファイルが占有できるディスク領域の量に対して、制限が存在するかどうかを指定します。

既定値は true です。
dynamicCompressionBufferLimit 省略可能な uint 属性。

IIS がバッファーをクライアントにフラッシュする前にバッファーに格納する動的に圧縮されたデータの最大量を指定します。 これにより、動的圧縮を実行するために必要なメモリの量が減ります。

注意: この属性は IIS 7.5 で追加されました。

既定値は 65536 です。
dynamicCompressionDisableCpuUsage 省略可能な uint 属性。

動的圧縮をオフにする CPU 使用率のパーセントを指定します。

注: この属性は、動的圧縮がオフになる CPU の上限として機能します。 CPU 使用率が dynamicCompressionEnableCpuUsage 属性で指定された値より低くなると、動的圧縮は再びオンになります。

既定値は 90 です。
dynamicCompressionEnableCpuUsage 省略可能な uint 属性。

それより低くなったら動的圧縮をオンにする CPU 使用率のパーセントを指定します。 0 から 100 の間の値にする必要があります。 平均 CPU 使用率は 30 秒ごとに計算されます。

注: この属性は、それより低くなると動的圧縮がオンになる CPU の下限として機能します。 CPU 使用率が dynamicCompressionDisableCpuUsage 属性で指定された値より高くなると、動的圧縮はオフになります。

既定値は 50 です。
expiresHeader 省略可能な文字列属性。

cacheControlHeader 属性で指定された Cache-Control ヘッダーと共に、要求されたすべての圧縮ファイルで送信される HTTP Expires ヘッダーの内容を指定します。 このヘッダーの組み合わせにより、以前のクライアントとプロキシ サーバーが圧縮ファイルのキャッシュを試行しなくなります。 この設定を有効にするには、sendCacheHeaders 属性を true に設定する必要があります。 このプロパティに対する変更を有効にするには、World Wide Web 発行サービス (WWW サービス) を再起動する必要があります。

既定値は Wed, 01 Jan 1997 12:00:00 GMT です。
maxDiskSpaceUsage 省略可能な uint 属性。

圧縮ファイルが圧縮ディレクトリ内で占有できるディスク領域を MB (メガバイト) 単位で指定します。 圧縮ファイルが使用する領域がこの属性の値の 90% を超えると、IIS は使用レベルが 90% になるまで、最も長く使われていないファイルを削除します。

注: IIS 6.0 では、この上限はバイト単位で表されました。IIS 7 では MB 単位で表されます。 IIS 7 では、アプリケーション プールごとにこの上限が適用されます。

既定値は 100 です。
minFileSizeForComp 省略可能な uint 属性。

オンデマンド圧縮を使うためにファイルに含まれる必要がある最小 KB (キロバイト) 数を指定します。

IIS 7.5 の既定値は 2700 です。IIS 7.0 での既定値は 256 でした。
noCompressionForHttp10 省略可能な Boolean 属性です。

HTTP 1.0 のバージョン番号を含む要求に対して圧縮をオフにするかどうかを指定します。

注: 一部の HTTP 1.0 クライアントは、圧縮オブジェクトのキャッシュを正しく処理しません。 この設定を使用すると、圧縮ファイルを展開できないクライアントに圧縮ファイルが返されなくなります。

既定値は true です。
noCompressionForProxies 省略可能な Boolean 属性です。

プロキシ サーバー経由の圧縮要求に対して HTTP 1.1 応答を無効にするかどうかを指定します。

注: 一部の HTTP プロキシ サーバーでは、圧縮されたオブジェクトのキャッシュが正しく処理されません。 この設定を使用すると、圧縮ファイルを展開できないプロキシ サーバーに圧縮ファイルが返されなくなります。

既定値は true です。
noCompressionForRange 省略可能な Boolean 属性です。

Range ヘッダーを含む HTTP 要求に対して圧縮をオフにするかどうかを指定します。

注: 一部のクライアントは、範囲要求を正しく処理できません。 この設定を使用すると、圧縮ファイルを展開できないクライアントに圧縮ファイルが返されなくなります。

既定値は true です。
sendCacheHeaders 省略可能な Boolean 属性です。

cacheControlHeaderexpiresHeader で構成されたヘッダーを、圧縮された各応答で送信するかどうかを指定します。

既定値は false です。
staticCompressionDisableCpuUsage 省略可能な uint 属性。

静的圧縮をオフにする CPU 使用率のパーセントを指定します。 0 から 100 の間の値にする必要があります。 平均 CPU 使用率は 30 秒ごとに計算されます。

注: このプロパティは、静的圧縮がオフになる CPU の上限として機能します。 CPU 使用率が staticCompressionEnableCpuUsage 属性で指定された値より低くなると、静的圧縮は再びオンになります。

既定値は 100 です。
staticCompressionEnableCpuUsage 省略可能な uint 属性。

静的圧縮をオンにする CPU 使用率のパーセントを指定します。 0 から 100 の間の値にする必要があります。 平均 CPU 使用率は 30 秒ごとに計算されます。

注: このプロパティは、静的圧縮がオンになる CPU の下限として機能します。 CPU 使用率が staticCompressionDisableCpuUsage 属性で指定された値より高くなると、静的圧縮はオフになります。

既定値は 50 です。
staticCompressionIgnoreHitFrequency 省略可能な Boolean 属性です。

True の場合、静的ファイルが一定期間内に一定回数ヒットした場合にのみ圧縮される動作は無効になります。 帯域幅の使用量を減らすために静的コンテンツを常に圧縮したい場合があります。 たとえば、Web サーバーとリクエスターの間にエッジ キャッシュを使用するロード バランサーがあるシステムで、後続の要求が Web サーバーに到達しないため、非圧縮ファイルがエッジ サーバーでキャッシュされる場合、静的コンテンツを常に圧縮することができます。

動作がオフでない場合、10 秒間に 2 ヒット以上のヒット率では、静的コンテンツが圧縮されます。 それより低いヒット率では、コンテンツは圧縮されません。

既定値は False です。

子要素

要素 説明
scheme 省略可能な要素です。

IIS がクライアント要求の圧縮に使う圧縮スキーム (Gzip または Deflate) を指定します。
dynamicTypes 省略可能な要素です。

動的圧縮の構成設定を指定します。
staticTypes 省略可能な要素です。

静的圧縮の構成設定を指定します。

構成サンプル

次の既定の <httpCompression> 要素は、IIS 7 の ApplicationHost.config ファイルで構成されます。 この構成セクションは、<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>

サンプル コード

次のコード サンプルでは、Office 2003 ドキュメントの MIME の種類を動的圧縮の種類のリストに追加しています。

Note

Office 2007 のドキュメントでは組み込みの圧縮が使われるため、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

Note

AppCmd.exe を使用してこれらの設定を構成する場合は、commit パラメーターを必ず apphost に設定する必要があります。 これにより、ApplicationHost.config ファイルの適切な location セクションに構成設定がコミットされます。

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

次のコード サンプルでは、Office 2003 ドキュメントの MIME の種類を静的圧縮の種類のリストに追加しています。

(> [!注]

Office 2007 のドキュメントでは組み込みの圧縮が使われるため、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

Note

AppCmd.exe を使用してこれらの設定を構成する場合は、commit パラメーターを必ず apphost に設定する必要があります。 これにより、ApplicationHost.config ファイルの適切な location セクションに構成設定がコミットされます。

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