次の方法で共有


HTTP 圧縮 <httpCompression>

概要

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

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

IIS 7 で使用される圧縮には、次の 2 種類があります。

  • 静的圧縮:

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

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

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

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

  • 動的圧縮:

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

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

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

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

<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 <httpCompression>要素は IIS 7.0 で導入されました。
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 サーバー] の順に展開し、[ パフォーマンス] を展開して、[ 静的コンテンツ圧縮 ] または [ 動的コンテンツ圧縮] を選択します。 [次へ] をクリックします。
    [静的コンテンツ圧縮] が選択され、[動的コンテンツ圧縮] が強調表示されている [Web サーバーとパフォーマンス] ノードのスクリーンショット。 .
  5. [ 機能の選択 ] ページで、[ 次へ] をクリックします。
  6. [ インストールの選択の確認 ] ページで、[ インストール] をクリックします。
  7. [ 結果 ] ページで、[ 閉じる] をクリックします。

Windows 8 または Windows 8.1

  1. スタート画面で、ポインターを左下隅まで移動し、[スタート] ボタンを右クリックし、[コントロール パネル] をクリックします。
  2. コントロール パネルで、[プログラムと機能] をクリックし、[Windows の機能のオンとオフを切り替える] をクリックします。
  3. [インターネット インフォメーション サービス]、[World Wide Web サービス]、[パフォーマンス機能] の順に展開し、[動的コンテンツ圧縮] または [静的コンテンツ圧縮] を選択します。
    [動的コンテンツ圧縮] と [静的コンテンツ圧縮] が選択されていることを示す[World Wide Web and Performance Features]\(World Wide Web とパフォーマンス機能\) ウィンドウが展開されたスクリーンショット。
  4. OK をクリックします。
  5. をクリックしてを閉じます。

Windows Server 2008 または Windows Server 2008 R2

  1. タスク バーの [ スタート] をクリックし、[ 管理ツール] をポイントして、[ サーバー マネージャー] をクリックします。
  2. [サーバー マネージャー階層] ウィンドウで、[役割] を展開し、[Web サーバー (IIS)] をクリックします。
  3. Web サーバー (IIS) ウィンドウで、[役割サービス] セクションまでスクロールし、[役割サービスの追加] をクリックします。
  4. 役割サービスの追加ウィザードの [役割サービスの選択] ページで、静的圧縮をインストールする場合は動的コンテンツ圧縮静的コンテンツ圧縮をインストールする場合は、[動的コンテンツ圧縮] を選択し、[次へ] をクリックします。
    動的コンテンツ圧縮が強調表示された [ロール サービスの追加] ページで展開された [パフォーマンス] ノードのスクリーンショット。
  5. [ インストールの選択の確認 ] ページで、[ インストール] をクリックします。
  6. [ 結果 ] ページで、[ 閉じる] をクリックします。

Windows Vista または Windows 7

  1. タスク バーの [ スタート] をクリックし、[ コントロール パネル] をクリックします。
  2. コントロール パネルで、[プログラムと機能] をクリックし、[Windows の機能のオンとオフを切り替える] をクリックします。
  3. [インターネット インフォメーション サービス]、[World Wide Web サービス]、[パフォーマンス機能] の順に展開します。
  4. 静的 圧縮 をインストールする場合は、動的圧縮と 静的コンテンツ圧縮 をインストールする場合は、[Http 圧縮動的] を選択します。
    [パフォーマンス機能] ノードが展開され、[H T T P Compression Dynamic] が選択されているスクリーンショット。
  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. [ホーム] ウィンドウで、[圧縮] をダブルクリックします。
    [圧縮] が選択されている既定の Web サイトホーム ページのスクリーンショット。

  4. [ 圧縮 ] ウィンドウで、静的圧縮または動的圧縮を有効にするボックスをオンにするか、チェック マークを削除して静的圧縮または動的圧縮を無効にします。
    スクリーンショットは、[動的コンテンツ圧縮を有効にする] ボックスと [静的コンテンツ圧縮を有効にする] ボックスの両方が選択されている [圧縮] ウィンドウを示しています。

  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. サーバーの [ホーム ] ウィンドウで、[ 圧縮] をダブルクリックします。
    [圧縮] が強調表示された [サーバーのホーム] ウィンドウを示すスクリーンショット。

  4. [ 圧縮 ] ウィンドウで、静的圧縮または動的圧縮を有効にするボックスをオンにするか、チェック マークを削除して静的圧縮または動的圧縮を無効にします。
    [動的コンテンツ圧縮を有効にする] と [静的コンテンツ圧縮を有効にする] が選択されている両方のボックスを示す [圧縮] ページのスクリーンショット。

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

staticCompressionIgnoreHitFrequency を構成する方法

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

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

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

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

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

  4. staticCompressionIgnoreHitFrequency の場合は、「True」と入力して、静的ファイルが一定期間内に一定回数ヒットした場合にのみ圧縮される動作を無効にするか、「False」と入力して動作を有効にします。
    スクリーンショットは、静的圧縮の [ヒット頻度を無視] オプションに True が入力された [構成エディター] ページを示しています。

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

コンフィギュレーション

属性

これらの属性は、サーバー レベルでのみ構成できます。 サイト レベル以下の構成は無視されます。

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

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

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

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

手記: IIS 6.0 では、IIS 一時圧縮ファイルの既定のディレクトリ パスは、\IIS 一時圧縮ファイル%% されました。

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

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

既定値は 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 省略可能な文字列属性。

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

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

圧縮ファイルが圧縮ディレクトリに占有できるディスク領域のメガバイト数を指定します。 圧縮ファイルで使用される領域がこの属性の値の 90% を超えると、IIS は 90% の使用レベルに達するまで、最近使用されたファイルを削除します。

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

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

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

IIS 7.5 の既定値は 2700。IIS 7.0 の場合、既定値は 256されました。
noCompressionForHttp10 省略可能なブール値属性。

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

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

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

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

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

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

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

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

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

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 省略可能なブール値属性。

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

動作が無効でない場合、10 秒でヒット率が 2 ヒット以上になると、静的コンテンツが圧縮されます。 ヒット率が低いほど、コンテンツが圧縮されなくなります。

既定値は False です。

下位要素

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

IIS がクライアント要求を圧縮するために使用する圧縮スキーム (Gzip または Deflate) を指定します。 この要素は、サーバー レベルでのみ構成できます。
dynamicTypes 省略可能な要素。

動的圧縮の構成設定を指定します。 IIS 10.0 より前のバージョンの IIS では、サーバー レベルでのみ構成できます。 IIS 10.0 以降の場合は、サイト レベルで構成することもできます。
staticTypes 省略可能な要素。

静的圧縮の構成設定を指定します。 IIS 10.0 以降の場合、サイト レベルでのみ構成できます。 IIS 10.0 より前のバージョンの IIS では、サーバー レベルでのみ構成できます。 IIS 10.0 以降の場合は、サイト レベルで構成することもできます。

構成サンプル

次の既定の <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 の種類を動的圧縮の種類の一覧に追加します。

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

AppCmd.exe を使用してこれらの設定を構成する場合は、 コミット パラメーターを必ず apphost に設定する必要があります。 これにより、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()

次のコード サンプルでは、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

AppCmd.exe を使用してこれらの設定を構成する場合は、 コミット パラメーターを必ず apphost に設定する必要があります。 これにより、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()