Server-Runtime-ServerRuntime <>
Übersicht
Das <serverRuntime>
Element konfiguriert die folgenden Einstellungen, die sich auf die Internetinformationsdienste (IIS) 7 Server-Runtime beziehen:
Wenn Sie das aktivierte Attribut auf true festlegen, konfigurieren Sie IIS 7 zum Bereitstellen von Inhalten auf der URL, in der das
<serverRuntime>
Element konfiguriert ist. Das aktivierte Attribut auf false konfiguriert, konfiguriert IIS 7, um Inhalte für diese URL nicht zu bedienen.Das alternativeHostName-Attribut gibt einen Hostnamen an, der sich vom Computernamen im HTTP-Inhaltsspeicherheader unterscheidet.
Das AppConcurrentRequestLimit-Attribut gibt die maximale Anzahl gleichzeitiger Anforderungen an, die für eine Anwendung in die Warteschlange gestellt werden können.
Das enableNagling-Attribut aktiviert oder deaktiviert nagling, was eine Optimierung für HTTP über TCP ist, die die Effizienz erhöht, indem Sie versuchen, die Anzahl der Pakete zu minimieren, die erforderlich sind, bevor Daten gesendet werden. Es funktioniert, bis ein Paket vollständig ist, bis ein Zeitraum von 200-Millisekunden abläuft, oder bis der Absender angibt, dass es abgeschlossen ist, Daten zu senden. IIS-Versionen 5.1 und frühere Verwendung von Nagling für alle Daten, die an den Client gesendet werden.
Hinweis
Nagling hat einen möglichen Nachteil; wenn eine Erweiterung das Paket nicht füllt, gibt es noch eine Verzögerung von 200 Millisekunden, bevor die Antwort gesendet wird. Dieses Verhalten wird am häufigsten gesehen, wenn Sie ISAPI-Erweiterungen verwenden, die einen HTTP-Keep-Alive-Header in der Antwort auf den Client unterstützen. In diesem Fall schließt IIS die Verbindung nach der Antwort nicht, sodass das endgültige Paket auf 200 Millisekunden wartet.
IIS 7 überprüft den Status von zwei Attributen, um den Datenverkehr für eine bestimmte URL zu bestimmen. Das frequentHitThreshold-Attribut konfiguriert die Anzahl der Anforderungen und das frequentHitTimePeriod-Attribut konfiguriert die Zeitmenge, die zulässig ist, bevor diese URL häufig getroffen wird. Diese Informationen werden beim Schreiben von HTTP-Modulen verwendet, die diese Informationen für die Verarbeitung verwenden. Weitere Informationen finden Sie im Artikel "IHttpUrlInfo::IsFrequentlyHit-Methode ".
Die Attribute "maxRequestEntityAllowed " und " UploadReadAheadSize" oder "UploadReadAheadSize " konfigurieren grenzwerte für die maximale Anzahl von Bytes, die im Entitätstext einer Anforderung zulässig sind, und die Anzahl der Bytes eines Webservers wird in einen Puffer gelesen und an eine ISAPI-Erweiterung übergeben. Es sollte berücksichtigt werden, dass die Erhöhung dieser Werte dem Endbenutzer ermöglicht, mehr Inhalte hochzuladen, die auswirkungen auf IIS-Laufzeitspeicherressourcen haben können. Es wird empfohlen, diese Werte in einer Zahl zu halten, die mit Anwendungsanforderungen konsistent ist, und nur in extremen Umständen verwenden Sie den maximalen Wert.
Neu in IIS 7.5
IIS 7.5 hat dem Element das authentifizierteUserOverride-Attribut<serverRuntime>
hinzugefügt, das konfiguriert, ob die IIS 7 Server-Runtime die Identität des authentifizierten Benutzers oder die Arbeitsprozessidentität in der IHttpUser::GetPrimaryToken und IHttpUser::GetImpersonationToken-Methoden bereitstellt. Dieses Attribut kann auf "UseAuthenticatedUser " oder "UseWorkerProcessUser" festgelegt werden, und diese Werte geben jeweils an, ob die IIS 7 Server-Runtime die Identität des authentifizierten Benutzers oder die Arbeitsprozessidentität für jedes Modul bereitstellt, das den Identitätswechsel verwendet.
Kompatibilität
Version | Notizen |
---|---|
IIS 10.0 | Das <serverRuntime> Element wurde in IIS 10.0 nicht geändert. |
IIS 8,5 | Das <serverRuntime> Element wurde in IIS 8.5 nicht geändert. |
IIS 8,0 | Das <serverRuntime> Element wurde in IIS 8.0 nicht geändert. |
IIS 7,5 | Das authentifizierteUserOverride-Attribut wurde in IIS 7.5 hinzugefügt. |
IIS 7.0 | Das <serverRuntime> Element wurde in IIS 7.0 eingeführt. |
IIS 6.0 | Das <serverRuntime> Element ersetzt die folgenden IIS 6.0-Metabaseeigenschaften:
|
Einrichten
Das <serverRuntime>
Element ist in der Standardinstallation von IIS 7 enthalten.
Vorgehensweise
Es gibt keine Benutzeroberfläche, mit der Sie das <serverRuntime>
Element für IIS 7 konfigurieren können. Beispiele zum programmgesteuerten Konfigurieren des <serverRuntime>
Elements finden Sie im Abschnitt "Codebeispiele " dieses Dokuments.
Konfiguration
Attribute
attribute | BESCHREIBUNG | ||||||
---|---|---|---|---|---|---|---|
alternateHostName |
Optionales Zeichenfolgeattribut. Gibt den Hostnamen an, der für die Umleitung verwendet werden soll. |
||||||
appConcurrentRequestLimit |
Optionales Uint-Attribut. Gibt die maximale Anzahl von Anforderungen an, die für eine Anwendung in die Warteschlange gestellt werden können. Der Standardwert ist 5000 . |
||||||
authenticatedUserOverride |
Optionales Aufzählungsattribute. Gibt an, ob die IIS 7 Server-Runtime die Identität des authentifizierten Benutzers oder die Arbeitsprozessidentität für Module bereitstellt, die den Identitätswechsel verwenden. Hinweis: Dieses Attribut wurde in IIS 7.5 hinzugefügt.
UseAuthenticatedUser . |
||||||
enabled |
Optionales Boolean-Attribut. Gibt an, ob Anwendungen auf dem Webserver Inhalte (true) bereitstellen oder nicht in der Lage sind, Inhalte (false) zu bedienen. Der Standardwert ist true . |
||||||
enableNagling |
Optionales Boolean-Attribut. Gibt an, ob nagling aktiviert ist (true) oder deaktiviert (false). Der Standardwert ist false . |
||||||
frequentHitThreshold |
Optionales Uint-Attribut. Gibt die Anzahl der Zeiten an, in denen eine URL angefordert werden muss, innerhalb des im frequentHitTimePeriod-Attribut angegebenen Zeitraums, der häufig als Treffer betrachtet werden soll. Der Wert muss zwischen 1 und 2147483647 sein. Der Standardwert ist 2 . |
||||||
frequentHitTimePeriod |
Optionales TimeSpan-Attribut. Gibt das Zeitintervall an, in dem eine URL die Anzahl der in dem frequentHitThreshold-Attribut angegebenen Zeiten angefordert werden muss, bevor er als häufig getroffen betrachtet wird. Der Standardwert ist 00:00:10 (10 Sekunden). |
||||||
maxRequestEntityAllowed |
Optionales Uint-Attribut. Gibt die maximale Anzahl von Bytes an, die sich in einem Entitätstext einer Anforderung befindet. Wenn der Inhaltslänge-Header eine größere Zahl angibt, sendet IIS eine HTTP 403-Fehlerantwort. Der Standardwert ist 4294967295 (unbegrenzt). |
||||||
uploadReadAheadSize |
Optionales Uint-Attribut. Gibt die Anzahl der Bytes an, die ein Webserver in einen Puffer liest und an eine ISAPI-Erweiterung oder ein Modul übergeben wird. Dies tritt einmal pro Clientanforderung auf. Die ISAPI-Erweiterung oder das Modul empfängt alle zusätzlichen Daten direkt vom Client. Der Wert muss zwischen 0 und 2147483647 sein. Der Standardwert ist 49152 . |
Untergeordnete Elemente
Keine
Konfigurationsbeispiel
Im folgenden Konfigurationsbeispiel wird das <serverRuntime>
attribut "Enable"-Attribut des Elements auf "true" festgelegt, und konfiguriert dann die Anzahl der Anforderungen für eine URL, die als "häufig getroffen" betrachtet wird, indem das Attribut "frequentHitThreshold" auf 5 Anforderungen und das häufigHitTimePeriod-Attribut auf 20 Sekunden festgelegt wird.
<location path="Default Web Site">
<system.webServer>
<serverRuntime enabled="true"
frequentHitThreshold="5"
frequentHitTimePeriod="00:00:20" />
</system.webServer>
</location>
Beispielcode
Die folgenden Codebeispiele legen das <serverRuntime>
aktivierte Attribut des Elements auf "true" fest, und konfigurieren Sie dann die Anzahl der Anforderungen für eine URL, die als "häufig getroffen" betrachtet wird, indem Sie das Attribut "frequentHitThreshold" auf 5 Anforderungen und das häufigHitTimePeriod-Attribut auf 20 Sekunden festlegen.
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
Hinweis
Sie müssen unbedingt den Commitparameterapphost
festlegen, wenn Sie AppCmd.exe verwenden, um diese Einstellungen zu konfigurieren. Dadurch wird der Konfigurationseinstellungen in den entsprechenden Speicherortabschnitt in der ApplicationHost.config-Datei zugewiesen.
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()