Bagikan melalui


Kompresi <HTTP httpCompression>

Gambaran Umum

Elemen <httpCompression> menentukan pengaturan kompresi HTTP untuk Internet Information Services (IIS) 7. Pemadatan HTTP dapat memberikan waktu transmisi yang lebih cepat antara IIS dan browser klien yang dapat menerima file terkompresi.

Catatan

Klien HTTP harus memulai komunikasi untuk konten terkompresi dengan mengirim header Http Accept-encoding yang sesuai. Jika klien tidak mampu melakukan kompresi HTTP, klien tidak akan melewati header tersebut dan IIS 7 akan selalu mengembalikan konten yang tidak dikompresi.

Ada dua jenis kompresi berbeda yang digunakan IIS 7:

  • Kompresi Statis:

    IIS 7 menyimpan konten statis terkompresi di jalur yang ditentukan oleh atribut direktori , yang meningkatkan performa pemadatan dengan menghilangkan kebutuhan untuk mengkompresi ulang konten yang telah dikompresi. Setelah IIS 7 memadatkan file, permintaan berikutnya diberikan salinan terkompresi file dari direktori cache.

    Atribut staticCompressionEnableCpuUsage dan staticCompressionDisableCpuUsage menentukan kapan IIS 7 akan memadatkan file statis berdasarkan penggunaan CPU.

    Anda harus menggunakan kompresi statis dengan file yang biasanya tidak berubah, seperti file HTML (*.html, *.htm), file teks (*.txt), dokumen Microsoft Office (*.doc, *.xls, *.ppt), dll. Ukuran file-file ini dapat dikurangi melalui kompresi, yang mengurangi waktu unduhan untuk permintaan klien dan mengurangi bandwidth di server.

    Catatan

    File gambar seperti *.jpg dan *.png file juga merupakan file statis, tetapi biasanya tidak mendapat manfaat dari kompresi HTTP karena file gambar ini sudah dikompresi.

  • Pemadatan Dinamis:

    Tidak seperti kompresi statis, IIS 7 melakukan pemadatan dinamis setiap kali klien meminta konten, tetapi versi terkompresi tidak di-cache ke disk. Perubahan ini dilakukan karena perbedaan utama antara konten statis dan dinamis. Konten statis tidak berubah. Namun, konten dinamis biasanya merupakan konten yang dibuat oleh aplikasi dan karenanya sering berubah, seperti Halaman Server Aktif (ASP) atau konten ASP.NET. Karena konten dinamis harus sering berubah, IIS 7 tidak menyimpannya dalam cache.

    Atribut dynamicCompressionEnableCpuUsage dan dynamicCompressionDisableCpuUsage menentukan kapan IIS 7 akan memadatkan file dinamis berdasarkan penggunaan CPU.

IIS 7 mendukung dua skema kompresi standar industri yang berbeda:

Masing-masing dari dua skema kompresi ini dapat diaktifkan menggunakan <schemes> elemen <httpCompression> elemen .

Catatan

<httpCompression> Meskipun elemen menentukan pengaturan kompresi HTTP untuk Internet Information Services (IIS) 7, <elemen urlCompression> menentukan apakah kompresi diaktifkan untuk namespace URL.

Kompatibilitas

Versi Catatan
IIS 10.0 Elemen <httpCompression> tidak dimodifikasi di IIS 10.0.
IIS 8.5 Atribut staticCompressionIgnoreHitFrequency ditambahkan di IIS 8.5.
IIS 8.0 Elemen <httpCompression> tidak dimodifikasi di IIS 8.0.
IIS 7.5 Di IIS 7.5, nilai default untuk minFileSizeForComp atribut telah diubah, dan dynamicCompressionBufferLimit atribut ditambahkan.
IIS 7.0 Elemen <httpCompression> ini diperkenalkan di IIS 7.0.
IIS 6.0 Elemen menggantikan <httpCompression> properti metabase IIS 6.0 berikut:
  • HcCacheControlHeader
  • HcCompressionDirectory
  • HcDoDiskSpaceLimiting
  • HcExpiresHeader
  • HcMaxDiskSpaceUsage
  • HcMinFileSizeForComp
  • HcNoCompressionForHttp10
  • HcNoCompressionForProxies
  • HcNoCompressionForRange
  • HcSendCacheHeaders

Siapkan

Pemadatan HTTP biasanya tersedia pada penginstalan default IIS 7 dan yang lebih baru. Namun, hanya kompresi statis yang diinstal secara default. Untuk menginstal kompresi statis atau dinamis, gunakan langkah-langkah berikut.

Windows Server 2012 atau Windows Server 2012 R2

  1. Pada taskbar, klik Manajer Server.
  2. Di Manajer Server, klik menu Kelola , lalu klik Tambahkan Peran dan Fitur.
  3. Di wizard Tambahkan Peran dan Fitur , klik Berikutnya. Pilih jenis penginstalan dan klik Berikutnya. Pilih server tujuan dan klik Berikutnya.
  4. Pada halaman Peran Server , perluas Server Web (IIS), perluas Server Web, perluas Performa, lalu pilih Kompresi Konten Statis dan/atau Kompresi Konten Dinamis. Klik Berikutnya.
    Cuplikan layar simpul Server Web dan Performa dengan Kompresi Konten Statis dipilih dan Pemadatan Konten Dinamis disorot. .
  5. Pada halaman Pilih fitur, klik Berikutnya.
  6. Pada halaman Konfirmasi pilihan instalasi, klik Instal.
  7. Pada halaman Hasil , klik Tutup.

Windows 8 atau Windows 8.1

  1. Pada layar Mulai, pindahkan penunjuk ke sudut kiri bawah, klik kanan tombol Mulai, lalu klik Panel Kontrol.
  2. Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan fitur Windows.
  3. Perluas Layanan Informasi Internet, perluas World Wide Web Services, perluas Fitur Performa, lalu pilih Pemadatan Konten Dinamis dan/atau Kompresi Konten Statis.
    Cuplikan layar panel Fitur World Wide Web dan Performa diperluas memperlihatkan Pemadatan Konten Dinamis dan Pemadatan Konten Statis dipilih.
  4. Klik OK.
  5. Klik Tutup.

Windows Server 2008 atau Windows Server 2008 R2

  1. Pada taskbar, klik Mulai, arahkan ke Alat Administratif, lalu klik Manajer Server.
  2. Di panel hierarki Manajer Server , perluas Peran, lalu klik Server Web (IIS).
  3. Di panel Server Web (IIS), gulir ke bagian Layanan Peran , lalu klik Tambahkan Layanan Peran.
  4. Pada halaman Pilih Layanan Peran dari Wizard Tambahkan Layanan Peran, pilih Pemadatan KontenDinamis jika Anda ingin menginstal pemadatan dinamis dan Kompresi Konten Statis jika Anda ingin menginstal pemadatan statis, lalu klik Berikutnya.
    Cuplikan layar node Performa diperluas di halaman Tambahkan Layanan Peran dengan Pemadatan Konten Dinamis disorot.
  5. Pada halaman Konfirmasi Pilihan Penginstalan , klik Instal.
  6. Pada halaman Hasil , klik Tutup.

Windows Vista atau Windows 7

  1. Pada taskbar, klik Mulai, lalu klik Panel Kontrol.
  2. Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan Fitur Windows.
  3. Perluas Layanan Informasi Internet, lalu World Wide Web Services, lalu Fitur Performa.
  4. Pilih Http Compression Dynamic jika Anda ingin menginstal pemadatan dinamis dan Kompresi Konten Statis jika Anda ingin menginstal kompresi statis.
    Cuplikan layar node Fitur Performa diperluas dan H T T P Compression Dynamic dipilih.
  5. Klik OK.

Bagaimana Caranya

Cara mengaktifkan atau menonaktifkan kompresi statis dan dinamis untuk situs atau aplikasi

  1. Buka Manajer Layanan Informasi Internet (IIS):

    • Jika Anda menggunakan Windows Server 2012 atau Windows Server 2012 R2:

      • Pada bilah tugas, klik Manajer Server, klik Alat, lalu klik Manajer Layanan Informasi Internet (IIS).
    • Jika Anda menggunakan Windows 8 atau Windows 8.1:

      • Tahan tombol Windows, tekan huruf X, lalu klik Panel Kontrol.
      • Klik Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
    • Jika Anda menggunakan Windows Server 2008 atau Windows Server 2008 R2:

      • Pada bilah tugas, klik Mulai, arahkan ke Alat Administratif, lalu klik Pengelola Layanan Informasi Internet (IIS).
    • Jika Anda menggunakan Windows Vista atau Windows 7:

      • Pada taskbar, klik Mulai, lalu klik Panel Kontrol.
      • Klik dua kali Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
  2. Di panel Koneksi , buka koneksi, situs, aplikasi, atau direktori yang ingin Anda aktifkan pemadatannya.

  3. Di panel Beranda , klik dua kali Pemadatan.
    Cuplikan layar halaman Beranda Situs Web Default memperlihatkan Pemadatan dipilih.

  4. Di panel Pemadatan , centang kotak untuk mengaktifkan pemadatan statis atau dinamis, atau hapus tanda centang untuk menonaktifkan pemadatan statis atau dinamis.
    Cuplikan layar memperlihatkan panel Pemadatan dengan Aktifkan pemadatan konten dinamis dan Aktifkan kotak kompresi konten statis yang dipilih.

  5. Setelah Anda menyelesaikan langkah-langkah di atas, klik Terapkan di panel Tindakan .

Cara mengaktifkan atau menonaktifkan kompresi statis dan dinamis untuk server

  1. Buka Pengelola Layanan Informasi Internet (IIS):

    • Jika Anda menggunakan Windows Server 2012 atau Windows Server 2012 R2:

      • Pada bilah tugas, klik Manajer Server, klik Alat, lalu klik Pengelola Layanan Informasi Internet (IIS).
    • Jika Anda menggunakan Windows 8 atau Windows 8.1:

      • Tahan tombol Windows, tekan huruf X, lalu klik Panel Kontrol.
      • Klik Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
    • Jika Anda menggunakan Windows Server 2008 atau Windows Server 2008 R2:

      • Pada bilah tugas, klik Mulai, arahkan ke Alat Administratif, lalu klik Pengelola Layanan Informasi Internet (IIS).
    • Jika Anda menggunakan Windows Vista atau Windows 7:

      • Pada taskbar, klik Mulai, lalu klik Panel Kontrol.
      • Klik dua kali Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
  2. Di panel Koneksi , sorot nama server Anda.

  3. Di panel Beranda server, klik dua kali Pemadatan.
    Cuplikan layar memperlihatkan panel Beranda server dengan Pemadatan disorot.

  4. Di panel Pemadatan , centang kotak untuk mengaktifkan pemadatan statis atau dinamis, atau hapus tanda centang untuk menonaktifkan pemadatan statis atau dinamis.
    Cuplikan layar halaman Pemadatan memperlihatkan kedua kotak untuk Aktifkan pemadatan konten dinamis dan Aktifkan pemadatan konten statis dipilih.

  5. Setelah Anda menyelesaikan langkah-langkah di atas, klik Terapkan di panel Tindakan .

Cara mengonfigurasi staticCompressionIgnoreHitFrequency

  1. Buka Pengelola Layanan Informasi Internet (IIS):

    • Jika Anda menggunakan Windows Server 2012 R2:

      • Pada bilah tugas, klik Manajer Server, klik Alat, lalu klik Pengelola Layanan Informasi Internet (IIS).
    • Jika Anda menggunakan Windows 8.1:

      • Tahan tombol Windows, tekan huruf X, lalu klik Panel Kontrol.
      • Klik Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
  2. Di panel Koneksi , pilih server, lalu klik dua kali Editor Konfigurasi.

  3. Di Editor Konfigurasi, untuk bagian , pilih system.webServer, lalu pilih httpCompression.

  4. Untuk staticCompressionIgnoreHitFrequency, masukkan True untuk menonaktifkan perilaku bahwa file statis dikompresi hanya jika mencapai beberapa kali dalam periode waktu tertentu, atau masukkan False untuk mengaktifkan perilaku.
    Cuplikan layar memperlihatkan halaman Editor Konfigurasi dengan True yang dimasukkan untuk opsi Kompresi statis Abaikan Frekuensi Hit.

  5. Di panel Tindakan , klik Terapkan.

Konfigurasi

Atribut

Atribut Deskripsi
cacheControlHeader Atribut string opsional.

Menentukan direktif yang ditambahkan IIS ke header Cache-Control yang menggantikan header HTTP Expires. Atribut ini memastikan bahwa klien dan server proksi yang lebih lama tidak mencoba untuk menyimpan file terkompresi. Untuk mengaktifkan pengaturan ini, Anda harus mengatur atribut sendCacheHeaders ke true. Layanan WWW harus dimulai ulang sebelum perubahan pada properti ini berlaku.

Nilai defaultnya adalah max-age=86400.
directory Atribut string opsional.

Menentukan direktori tempat versi terkompresi file statis disimpan sementara dan di-cache.

Catatan: Di IIS 6.0, jalur direktori default untuk file terkompresi sementara IIS adalah %windir%\IIS Temporary Compressed Files.

Nilai defaultnya adalah %SystemDrive%\inetpub\temp\IIS Temporary Compressed Files.
doDiskSpaceLimiting Atribut Boolean opsional.

Menentukan apakah batas ada untuk jumlah ruang disk yang semua file terkompresi, yang disimpan dalam direktori kompresi yang ditentukan oleh atribut direktori, dapat menempati.

Nilai defaultnya adalah true.
dynamicCompressionBufferLimit Atribut uint opsional.

Menentukan jumlah maksimum data terkompresi dinamis yang akan di-buffer IIS sebelum menghapus buffer ke klien. Ini mengurangi jumlah memori yang diperlukan untuk melakukan pemadatan dinamis.

Catatan: Atribut ini ditambahkan di IIS 7.5.

Nilai defaultnya adalah 65536.
dynamicCompressionDisableCpuUsage Atribut uint opsional.

Menentukan persentase pemanfaatan CPU di mana pemadatan dinamis akan dinonaktifkan.

Catatan: Atribut ini bertindak sebagai batas CPU atas di mana pemadatan dinamis dimatikan. Ketika pemanfaatan CPU berada di bawah nilai yang ditentukan dalam atribut dynamicCompressionEnableCpuUsage , pemadatan dinamis akan diaktifkan kembali.

Nilai defaultnya adalah 90.
dynamicCompressionEnableCpuUsage Atribut uint opsional.

Menentukan persentase pemanfaatan CPU di bawah kompresi dinamis mana yang akan diaktifkan. Nilai harus antara 0 dan 100. Pemanfaatan CPU rata-rata dihitung setiap 30 detik.

Catatan: Atribut ini bertindak sebagai batas CPU yang lebih rendah di bawah kompresi dinamis mana yang diaktifkan. Ketika pemanfaatan CPU naik di atas nilai yang ditentukan dalam atribut dynamicCompressionDisableCpuUsage , pemadatan dinamis akan dinonaktifkan.

Nilai defaultnya adalah 50.
expiresHeader Atribut string opsional.

Menentukan konten header HTTP Expires yang dikirim dengan semua file terkompresi yang diminta, bersama dengan header Cache-Control yang ditentukan dalam atribut cacheControlHeader . Kombinasi header ini memastikan bahwa klien dan server proksi yang lebih lama tidak mencoba untuk menyimpan file terkompresi. Untuk mengaktifkan pengaturan ini, Anda harus mengatur atribut sendCacheHeaders ke true. Layanan Penerbitan World Wide Web (layanan WWW) harus dimulai ulang sebelum perubahan pada properti ini berlaku.

Nilai defaultnya adalah Wed, 01 Jan 1997 12:00:00 GMT.
maxDiskSpaceUsage Atribut uint opsional.

Menentukan jumlah megabyte ruang disk yang dapat ditempat file terkompresi dalam direktori kompresi. Ketika ruang yang digunakan oleh file terkompresi melebihi 90 persen dari nilai dalam atribut ini, IIS menghapus file yang terakhir digunakan sampai tingkat penggunaan 90 persen tercapai.

Catatan: Dalam IIS 6.0, batas ini dinyatakan dalam byte; di IIS 7, dinyatakan dalam megabyte. Di IIS 7 batas diterapkan per kumpulan aplikasi.

Nilai defaultnya adalah 100.
minFileSizeForComp Atribut uint opsional.

Menentukan jumlah minimum kilobyte yang harus dimuat file untuk menggunakan pemadatan sesuai permintaan.

Nilai default untuk IIS 7.5 adalah 2700; untuk IIS 7.0 nilai defaultnya adalah 256.
noCompressionForHttp10 Atribut Boolean opsional.

Menentukan apakah pemadatan dinonaktifkan untuk permintaan yang berisi nomor versi HTTP 1.0.

Catatan: Beberapa klien HTTP 1.0 tidak menangani penembolokan objek terkompresi dengan benar. Anda dapat menggunakan pengaturan ini untuk menghindari pengembalian file terkompresi ke klien yang tidak dapat mendekompresinya.

Nilai defaultnya adalah true.
noCompressionForProxies Atribut Boolean opsional.

Menentukan apakah respons HTTP 1.1 dinonaktifkan untuk permintaan pemadatan yang datang melalui server proksi.

Catatan: Beberapa server proksi HTTP tidak menangani penembolokan objek terkompresi dengan benar. Anda dapat menggunakan pengaturan ini untuk menghindari pengembalian file terkompresi ke server proksi yang tidak dapat mendekompresinya.

Nilai defaultnya adalah true.
noCompressionForRange Atribut Boolean opsional.

Menentukan apakah pemadatan dinonaktifkan untuk permintaan HTTP yang menyertakan header Rentang.

Catatan: Beberapa klien tidak dapat menangani permintaan rentang dengan benar. Anda dapat menggunakan pengaturan ini untuk menghindari pengembalian file terkompresi ke klien yang tidak dapat mendekompresinya.

Nilai defaultnya adalah true.
sendCacheHeaders Atribut Boolean opsional.

Menentukan apakah header yang dikonfigurasi dalam cacheControlHeader dan expiresHeader dikirim dengan setiap respons terkompresi.

Nilai defaultnya adalah false.
staticCompressionDisableCpuUsage Atribut uint opsional.

Menentukan persentase pemanfaatan CPU di mana pemadatan statis dinonaktifkan. Nilai harus antara 0 dan 100. Pemanfaatan CPU rata-rata dihitung setiap 30 detik.

Catatan: Properti ini bertindak sebagai batas CPU atas di mana pemadatan statis dimatikan. Ketika pemanfaatan CPU berada di bawah nilai yang ditentukan dalam atribut staticCompressionEnableCpuUsage , kompresi statis akan diaktifkan kembali.

Nilai defaultnya adalah 100.
staticCompressionEnableCpuUsage Atribut uint opsional.

Menentukan persentase pemanfaatan CPU di mana pemadatan statis diaktifkan. Nilai harus antara 0 dan 100. Pemanfaatan CPU rata-rata dihitung setiap 30 detik.

Catatan: Properti ini bertindak sebagai batas CPU yang lebih rendah di bawah pemadatan statis yang diaktifkan. Ketika pemanfaatan CPU naik di atas nilai yang ditentukan dalam atribut staticCompressionDisableCpuUsage , kompresi statis akan dinonaktifkan.

Nilai defaultnya adalah 50.
staticCompressionIgnoreHitFrequency Atribut Boolean opsional.

Jika True, menonaktifkan perilaku bahwa file statis dikompresi hanya jika mencapai beberapa kali dalam periode waktu tertentu. Anda mungkin mengalami keadaan di mana Anda ingin konten statis selalu dikompresi untuk menurunkan penggunaan bandwidth. Misalnya, Anda mungkin ingin selalu memadatkan konten statis ketika sistem menggunakan load balancer dengan penembolokan tepi antara server Web dan pemohon, menyebabkan file yang tidak dikompresi di-cache di server edge karena permintaan berikutnya tidak akan mencapai server Web.

Jika perilaku tidak dinonaktifkan, tingkat hit lebih besar dari atau sama dengan dua temuan dalam 10 detik akan mengakibatkan pemadatan konten statis. Laju hit yang lebih rendah akan mengakibatkan konten tidak dikompresi.

Nilai defaultnya adalah False.

Elemen Anak

Elemen Deskripsi
scheme Elemen opsional.

Menentukan skema kompresi (Gzip atau Deflate) yang digunakan IIS untuk memadatkan permintaan klien.
dynamicTypes Elemen opsional.

Menentukan pengaturan konfigurasi untuk pemadatan dinamis.
staticTypes Elemen opsional.

Menentukan pengaturan konfigurasi untuk pemadatan statis.

Sampel Konfigurasi

Elemen default <httpCompression> berikut dikonfigurasi dalam file ApplicationHost.config di IIS 7. Bagian konfigurasi ini mewarisi pengaturan konfigurasi default kecuali Anda menggunakan <clear> elemen .

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

Kode Sampel

Sampel kode berikut akan menambahkan jenis MIME untuk dokumen Office 2003 ke daftar jenis kompresi dinamis.

Catatan

Dokumen Office 2007 menggunakan pemadatan bawaan, sehingga tidak perlu dikompresi oleh 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

Catatan

Anda harus memastikan untuk mengatur parameter penerapan ke apphost saat Anda menggunakan AppCmd.exe untuk mengonfigurasi pengaturan ini. Ini menerapkan pengaturan konfigurasi ke bagian lokasi yang sesuai dalam file 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()

Sampel kode berikut akan menambahkan tipe MIME untuk dokumen Office 2003 ke daftar tipe kompresi statis.

(> [! CATATAN]

Dokumen Office 2007 menggunakan kompresi bawaan, sehingga tidak perlu dikompresi oleh 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

Catatan

Anda harus memastikan untuk mengatur parameter penerapan ke apphost saat Anda menggunakan AppCmd.exe untuk mengonfigurasi pengaturan ini. Ini menerapkan pengaturan konfigurasi ke bagian lokasi yang sesuai dalam file 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()