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:
  • SetHostName
  • MaxRequestEntityAllowed
  • Uploadreadaheadsize

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.
Wert BESCHREIBUNG
UseAuthenticatedUser Gibt an, dass IIS das Token des authentifizierten Benutzers bereitstellt; Anwendungen, die in diesem Kontext ausgeführt werden, sind auf alle Zugriffsbeschränkungen für die Identität des authentifizierten Benutzers beschränkt.

Der numerische Wert ist 1.
UseWorkerProcessUser Gibt an, dass IIS das Token für die Arbeitsprozessidentität anstelle der Identität des authentifizierten Benutzers bereitstellt; Anwendungen, die in diesem Kontext ausgeführt werden, sind auf alle Zugriffsbeschränkungen für die Arbeitsprozessidentität beschränkt.

Der numerische Wert ist 2.
Der Standardwert ist 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()