Bagikan melalui


Server Runtime <ServerRuntime>

Gambaran Umum

Elemen <serverRuntime> mengonfigurasi pengaturan berikut yang terkait dengan runtime server Internet Information Services (IIS) 7:

  • Mengatur atribut yang diaktifkan ke true akan mengonfigurasi IIS 7 untuk menyajikan konten di URL tempat <serverRuntime> elemen dikonfigurasi; mengatur atribut yang diaktifkan ke false akan mengonfigurasi IIS 7 untuk tidak menyajikan konten untuk URL tersebut.

  • Atribut alternateHostName menentukan nama host yang berbeda dari nama komputer di header lokasi Konten HTTP.

  • Atribut appConcurrentRequestLimit menentukan jumlah maksimum permintaan bersamaan yang dapat diantrekan untuk aplikasi.

  • Atribut enableNagling memungkinkan atau menonaktifkan nagling, yang merupakan pengoptimalan untuk HTTP melalui TCP yang meningkatkan efisiensi dengan mencoba meminimalkan jumlah paket yang diperlukan sebelum data dikirim . Ini bekerja dengan menunggu untuk mengirim paket sampai area datanya penuh, sampai periode waktu habis 200 milidetik berakhir, atau sampai pengirim menunjukkan bahwa itu selesai mengirim data. IIS versi 5.1 dan yang lebih lama menggunakan nagling untuk semua data yang dikirim ke klien.

    Catatan

    Nagling memiliki kemungkinan kerugian; jika ekstensi tidak mengisi paket, masih ada penundaan 200 milidetik sebelum respons dikirim. Perilaku ini paling sering terlihat ketika Anda menggunakan ekstensi ISAPI yang mendukung header http keep-alive dalam respons terhadap klien. Dalam hal ini, IIS tidak menutup koneksi setelah respons, sehingga paket akhir akhirnya menunggu 200 milidetik.

  • IIS 7 memeriksa status dua atribut untuk menentukan tingkat lalu lintas untuk URL tertentu. Atribut frequentHitThreshold mengonfigurasi jumlah permintaan dan atribut frequentHitTimePeriod mengonfigurasi jumlah waktu yang diizinkan sebelum URL tersebut dinilai sering terpukul. Informasi ini digunakan saat menulis modul HTTP yang menggunakan informasi ini untuk diproses. Untuk informasi selengkapnya, lihat artikel Metode IHttpUrlInfo::IsFrequentlyHit .

  • Atribut maxRequestEntityAllowed dan uploadReadAheadSize masing-masing mengonfigurasi batas untuk jumlah maksimum byte yang diizinkan dalam badan entitas permintaan dan jumlah byte yang akan dibaca server Web ke dalam buffer dan meneruskan ke ekstensi ISAPI. Perlu dipertimbangkan bahwa meningkatkan nilai-nilai ini memungkinkan pengguna akhir untuk mengunggah lebih banyak konten yang dapat berpengaruh pada sumber daya memori runtime IIS. Disarankan untuk menjaga nilai-nilai ini pada angka yang konsisten dengan kebutuhan aplikasi, dan hanya dalam keadaan ekstrem menggunakan nilai maksimum.

Baru di IIS 7.5

IIS 7.5 menambahkan atribut authenticatedUserOverride ke <serverRuntime> elemen , yang mengonfigurasi apakah runtime server IIS 7 akan memberikan identitas pengguna yang diautentikasi atau identitas proses pekerja di metode IHttpUser::GetPrimaryToken dan IHttpUser::GetImpersonationToken . Atribut ini dapat diatur ke UseAuthenticatedUser atau UseWorkerProcessUser, dan nilai-nilai ini masing-masing menentukan apakah runtime server IIS 7 akan memberikan identitas pengguna yang diautentikasi atau identitas proses pekerja untuk modul apa pun yang menggunakan peniruan.

Kompatibilitas

Versi Catatan
IIS 10.0 Elemen <serverRuntime> tidak dimodifikasi dalam IIS 10.0.
IIS 8.5 Elemen <serverRuntime> tidak dimodifikasi dalam IIS 8.5.
IIS 8.0 Elemen <serverRuntime> tidak dimodifikasi dalam IIS 8.0.
IIS 7.5 Atribut authenticatedUserOverride ditambahkan di IIS 7.5.
IIS 7.0 Elemen ini <serverRuntime> diperkenalkan di IIS 7.0.
IIS 6.0 Elemen menggantikan <serverRuntime> properti metabase IIS 6.0 berikut:
  • SetHostName
  • MaxRequestEntityAllowed
  • UploadReadAheadSize

Siapkan

Elemen <serverRuntime> ini disertakan dalam penginstalan default IIS 7.

Bagaimana Caranya

Tidak ada antarmuka pengguna yang memungkinkan Anda mengonfigurasi <serverRuntime> elemen untuk IIS 7. Untuk contoh cara mengonfigurasi <serverRuntime> elemen secara terprogram, lihat bagian Sampel Kode dari dokumen ini.

Konfigurasi

Atribut

Atribut Deskripsi
alternateHostName Atribut string opsional.

Menentukan nama host yang akan digunakan untuk pengalihan.
appConcurrentRequestLimit Atribut uint opsional.

Menentukan jumlah maksimum permintaan yang dapat diantrekan untuk aplikasi.

Nilai defaultnya adalah 5000.
authenticatedUserOverride Atribut enum opsional.

Menentukan apakah runtime server IIS 7 akan memberikan identitas pengguna yang diautentikasi atau identitas proses pekerja untuk modul yang menggunakan peniruan identitas.

Catatan: Atribut ini ditambahkan di IIS 7.5.
Nilai Deskripsi
UseAuthenticatedUser Menentukan bahwa IIS akan memberikan token pengguna yang diautentikasi; aplikasi yang berjalan dalam konteks ini akan terbatas pada pembatasan akses apa pun untuk identitas pengguna yang diautentikasi.

Nilai numerik adalah 1.
UseWorkerProcessUser Menentukan bahwa IIS akan memberikan token untuk identitas proses pekerja alih-alih menggunakan identitas pengguna yang diautentikasi; aplikasi yang berjalan dalam konteks ini akan terbatas pada pembatasan akses apa pun untuk identitas proses pekerja.

Nilai numerik adalah 2.
Nilai defaultnya adalah UseAuthenticatedUser.
enabled Atribut Boolean opsional.

Menentukan apakah aplikasi di server Web dapat menyajikan konten (benar) atau tidak dapat menyajikan konten (false).

Nilai defaultnya adalah true.
enableNagling Atribut Boolean opsional.

Menentukan apakah nagling diaktifkan (true) atau dinonaktifkan (false).

Nilai defaultnya adalah false.
frequentHitThreshold Atribut uint opsional.

Menentukan berapa kali URL harus diminta, dalam rentang waktu yang ditentukan dalam atribut frequentHitTimePeriod , untuk dianggap sering terpukul. Nilai harus antara 1 dan 2147483647.

Nilai defaultnya adalah 2.
frequentHitTimePeriod Atribut timeSpan opsional.

Menentukan interval waktu di mana URL harus diminta berapa kali yang ditentukan dalam atribut frequentHitThreshold sebelum dianggap sering terpukul.

Nilai defaultnya adalah 00:00:10 (10 detik).
maxRequestEntityAllowed Atribut uint opsional.

Menentukan jumlah maksimum byte yang dapat berada dalam badan entitas permintaan. Jika header Content-Length menentukan angka yang lebih besar, IIS mengirimkan respons kesalahan HTTP 403.

Nilai defaultnya adalah 4294967295 (tidak terbatas).
uploadReadAheadSize Atribut uint opsional.

Menentukan jumlah byte yang akan dibaca server Web ke dalam buffer dan meneruskan ke ekstensi atau modul ISAPI. Ini terjadi sekali per permintaan klien. Ekstensi atau modul ISAPI menerima data tambahan langsung dari klien. Nilai harus antara 0 dan 2147483647.

Nilai defaultnya adalah 49152.

Elemen Anak

Tidak ada.

Sampel Konfigurasi

Sampel konfigurasi berikut mengatur <serverRuntime> atribut aktifkan elemen ke true, lalu mengonfigurasi jumlah permintaan URL agar dianggap "sering terpukul" dengan mengatur atribut frequentHitThreshold ke 5 permintaan dan atribut frequentHitTimePeriod menjadi 20 detik.

<location path="Default Web Site">
   <system.webServer>
      <serverRuntime enabled="true"
         frequentHitThreshold="5"
         frequentHitTimePeriod="00:00:20" />
   </system.webServer>
</location>

Kode Sampel

Sampel kode berikut mengatur <serverRuntime> atribut aktifkan elemen ke true, lalu mengonfigurasi jumlah permintaan url agar dianggap "sering terpukul" dengan mengatur atribut frequentHitThreshold ke 5 permintaan dan atribut frequentHitTimePeriod menjadi 20 detik.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/serverRuntime /enabled:"True" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/serverRuntime /frequentHitThreshold:"5" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/serverRuntime /frequentHitTimePeriod:"00:00:20" /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 serverRuntimeSection = config.GetSection("system.webServer/serverRuntime", "Default Web Site");
         serverRuntimeSection["enabled"] = true;
         serverRuntimeSection["frequentHitThreshold"] = 5;
         serverRuntimeSection["frequentHitTimePeriod"] = TimeSpan.Parse("00:00:20");

         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 serverRuntimeSection As ConfigurationSection = config.GetSection("system.webServer/serverRuntime", "Default Web Site")
      serverRuntimeSection("enabled") = True
      serverRuntimeSection("frequentHitThreshold") = 5
      serverRuntimeSection("frequentHitTimePeriod") = TimeSpan.Parse("00:00:20")

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var serverRuntimeSection = adminManager.GetAdminSection("system.webServer/serverRuntime", "MACHINE/WEBROOT/APPHOST/Default Web Site");
serverRuntimeSection.Properties.Item("enabled").Value = true;
serverRuntimeSection.Properties.Item("frequentHitThreshold").Value = 5;
serverRuntimeSection.Properties.Item("frequentHitTimePeriod").Value = "00:00:20";

adminManager.CommitChanges();

Vbscript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set serverRuntimeSection = adminManager.GetAdminSection("system.webServer/serverRuntime", "MACHINE/WEBROOT/APPHOST/Default Web Site")
serverRuntimeSection.Properties.Item("enabled").Value = True
serverRuntimeSection.Properties.Item("frequentHitThreshold").Value = 5
serverRuntimeSection.Properties.Item("frequentHitTimePeriod").Value = "00:00:20"

adminManager.CommitChanges()