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