Server Runtime <ServerRuntime>
Übersicht
Das <serverRuntime>
Element konfiguriert die folgenden Einstellungen, die mit der IIS 7-Serverlaufzeit (Internet Information Services) zusammenhängen:
Wenn Sie das aktivierte Attribut auf wahr festlegen, wird IIS 7 so konfiguriert, dass Inhalte auf der URL bereitgestellt werden, in der das
<serverRuntime>
Element konfiguriert ist. Durch Festlegen des aktivierten Attributs auf falsch wird IIS 7 so konfiguriert, dass Inhalte für diese URL nicht bereitgestellt werden.Das Attribut alternateHostName gibt einen Hostnamen an, der sich vom Computernamen im HTTP-Inhalts-Speicherort-Header unterscheidet.
Das Attribut appConcurrentRequestLimit gibt die maximale Anzahl gleichzeitiger Anforderungen an, die für eine Anwendung in die Warteschlange gestellt werden können.
Das Attribut enableNagling aktiviert oder deaktiviert den Nagle-Algorithmus, was eine Optimierung für HTTP über TCP darstellt, die die Effizienz erhöht, indem versucht wird, die Anzahl der Pakete zu minimieren, die vor dem Senden von Daten erforderlich sind. Es funktioniert, bis der Datenbereich voll ist, bis ein Zeitraum von 200 Millisekunden abläuft, oder bis der Absender angibt, dass das Senden von Daten abgeschlossen ist. IIS-Version 5.1 und frühere Versionen verwenden den Nagle-Algorithmus für alle Daten, die an den Client gesendet werden.
Hinweis
Der Nagle-Algorithmus hat einen möglichen Nachteil. Wenn eine Erweiterung das Paket nicht ausfüllt, liegt noch eine Verzögerung von 200 Millisekunden vor dem Senden der Antwort vor. Dieses Verhalten wird am häufigsten angezeigt, 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 200 Millisekunden wartet.
IIS 7 überprüft den Status von zwei Attributen, um die Datenverkehrsebene für eine bestimmte URL zu ermitteln. Das Attribut frequentHitThreshold konfiguriert die Anzahl der Anforderungen, und das Attribut frequentHitTimePeriod konfiguriert die zulässige Zeit, bevor diese URL als häufiger Treffer bewertet wird. Diese Informationen werden beim Schreiben von HTTP-Modulen verwendet, die diese Informationen für die Verarbeitung verwenden. Weitere Informationen finden Sie im Artikel zur IHttpUrlInfo::IsFrequentlyHit-Methode.
Die Attribute maxRequestEntityAllowed und uploadReadAheadSize konfigurieren die Grenzwerte für die maximale Anzahl von Bytes, die im Entitätstext einer Anforderung zulässig sind, und die Anzahl der Bytes, die ein Webserver in einen Puffer liest und an eine ISAPI-Erweiterung übergeben wird. Es sollte berücksichtigt werden, dass das Erhöhen dieser Werte es dem Endbenutzer ermöglicht, mehr Inhalte hochzuladen, die sich auf IIS-Runtime-Speicherressourcen auswirken können. Es wird empfohlen, diese Werte auf einer Zahl zu halten, die den Anwendungsanforderungen entspricht, und nur unter extremen Umständen wird der Maximalwert verwendet.
Neu in IIS 7.5
IIS 7.5 hat dem <serverRuntime>
Element das Attribut authenticatedUserOverride hinzugefügt, das konfiguriert, ob die IIS 7-Server-Runtime die Identität des authentifizierten Nutzers oder die Arbeitsprozessidentität in den Methoden IHttpUser::GetPrimaryToken und IHttpUser::GetImpersonationToken bereitstellt. Dieses Attribut kann auf UseAuthenticatedUser " oder "UseWorkerProcessUser" festgelegt werden, und diese Werte geben an, ob die IIS 7-Server-Runtime die Identität des authentifizierten Nutzers oder die Arbeitsprozessidentität für jedes Modul bereitstellt, das den Identitätswechsel verwendet.
Kompatibilität
Version | Hinweise |
---|---|
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 authenticatedUserOverride-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-Metabasiseigenschaften:
|
Setup
Das <serverRuntime>
-Element ist in der Standardinstallation von IIS 7 enthalten.
Gewusst wie
Es gibt keine Benutzeroberfläche, über die 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
Attribut | 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 Enumerationsattribut. Gibt an, ob die IIS 7-Server-Runtime die Identität des authentifizierten Nutzers oder die Arbeitsprozessidentität für Module bereitstellt, die einen Identitätswechsel vornehmen. Hinweis: Dieses Attribut wurde in IIS 7.5 hinzugefügt.
UseAuthenticatedUser . |
||||||
enabled |
Optionales Boolean -Attribut. Gibt an, ob Anwendungen auf dem Webserver Inhalte (wahr) bereitstellen können oder nicht in der Lage sind, Inhalte (falsch) zu bedienen. Der Standardwert ist true . |
||||||
enableNagling |
Optionales Boolean -Attribut. Gibt an, ob der Nagle-Algorithmus aktiviert (wahr) oder deaktiviert (falsch) ist. Der Standardwert ist false . |
||||||
frequentHitThreshold |
Optionales Uint-Attribut. Gibt an, wie oft eine URL innerhalb der im Attribut frequentHitTimePeriod angegebenen Zeitspanne angefordert werden muss, um als häufiger Treffer zu gelten. Der Wert muss zwischen 1 und 2147483647 liegen. Der Standardwert ist 2 . |
||||||
frequentHitTimePeriod |
Optionales TimeSpan-Attribut. Gibt das Zeitintervall an, in dem eine URL so oft angefordert werden muss, wie im Attribut frequentHitThreshold angegeben wird, bevor sie 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 in einem Entitätstext einer Anforderung enthalten sein können. Wenn der Header Inhaltslänge 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 einliest und an eine ISAPI-Erweiterung oder ein ISAPI-Modul übergibt. Dies erfolgt einmal pro Clientanforderung. Die ISAPI-Erweiterung oder das Modul empfängt alle zusätzlichen Daten direkt vom Client. Der Wert muss zwischen 0 und 2147483647 liegen. Der Standardwert ist 49152 . |
Untergeordnete Elemente
Keine.
Konfigurationsbeispiel
Im folgenden Konfigurationsbeispiel wird das Attribut aktivieren des <serverRuntime>
Elements auf wahr festgelegt. Anschließend wird die Anzahl der Anforderungen für eine URL so konfiguriert, dass sie als „häufig getroffen“ betrachtet wird, indem das Attribut frequentHitThreshold auf 5 Anforderungen und das Attribut frequentHitTimePeriod 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 Attribut aktivieren des <serverRuntime>
Elements auf wahr fest. Konfigurieren Sie dann die Anzahl der Anforderungen für eine URL so, dass sie als „häufig getroffen“ betrachtet wird, indem Sie das Attribut frequentHitThreshold auf 5 Anforderungen und das Attribut frequentHitTimePeriod 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 werden die Konfigurationseinstellungen auf den entsprechenden Speicherortabschnitt in der Datei ApplicationHost.config festgelegt.
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()