Freigeben über


<applicationPool>-Element (Webeinstellungen)

Gibt Konfigurationseinstellungen an, die von ASP.NET verwendet werden, um das prozessweite Verhalten zu verwalten, wenn eine ASP.NET-Anwendung im integrierten Modus in IIS 7.0 oder einer höheren Version ausgeführt wird.

Wichtig

Dieses Element und das Feature, das es unterstützt, funktionieren nur, wenn Ihre ASP.NET-Anwendung in IIS 7.0 oder höheren Versionen gehostet wird.

<configuration>
  <system.web>
    <applicationPool>

Syntax

<applicationPool
    maxConcurrentRequestsPerCPU="5000"
    maxConcurrentThreadsPerCPU="0"
    requestQueueLimit="5000" />  

Attribute und Elemente

In den folgenden Abschnitten werden Attribute sowie untergeordnete und übergeordnete Elemente beschrieben.

Attribute

attribute BESCHREIBUNG
maxConcurrentRequestsPerCPU Gibt an, wie viele gleichzeitige Anforderungen ASP.NET pro CPU zulässt.
maxConcurrentThreadsPerCPU Gibt an, wie viele gleichzeitige Threads für einen Anwendungspool pro CPU ausgeführt werden können. Sie haben damit eine alternative Möglichkeit, die Parallelität in ASP.NET zu steuern, da Sie die Anzahl der verwalteten Threads begrenzen können, die pro CPU zum Verarbeiten von Anforderungen verwendet werden können. Standardmäßig hat diese Einstellung den Wert 0 (null), der bedeutet, dass ASP.NET die Anzahl der Threads, die pro CPU erstellt werden können, nicht einschränkt. Allerdings begrenzt auch der CLR-Threadpool die Anzahl der Threads, die erstellt werden können.
requestQueueLimit Gibt die maximale Anzahl von Anforderungen an, die für ASP.NET in einem einzelnen Prozess in die Warteschlange gestellt werden können. Wenn zwei oder mehr ASP.NET-Anwendungen in einem Anwendungspool ausgeführt werden, legt diese Einstellung die gemeinsame Anzahl von Anforderungen fest, die an eine beliebige Anwendung im Anwendungspool gesendet werden können.

Untergeordnete Elemente

Keine

Übergeordnete Elemente

Element BESCHREIBUNG
<system.web> Enthält Informationen dazu, wie ASP.NET mit einer Hostanwendung interagiert.

Bemerkungen

Wenn Sie IIS 7.0 oder eine höhere Version im integrierten Modus ausführen, können Sie mit dieser Elementkombination konfigurieren, wie ASP.NET Thread- und Warteschlangenanforderungen verwaltet, wenn die Anwendung in einem IIS-Anwendungspool gehostet wird. Wenn Sie IIS 6 ausführen oder IIS 7.0 im klassischen Modus oder im ISAPI-Modus verwenden, werden diese Einstellungen ignoriert.

Die applicationPool-Einstellungen gelten für alle Anwendungspools, die unter einer bestimmten Version von .NET Framework ausgeführt werden. Die Einstellungen sind in einer Datei „aspnet.config“ enthalten. Es gibt eine Version dieser Datei für die Versionen 2.0 und 4.0 von .NET Framework. (Die Versionen 3.0 und 3.5 von .NET Framework verwenden dieselbe Version der Datei „aspnet.config“ wie Version 2.0.)

Wichtig

Wenn Sie IIS 7.0 unter Windows 7 ausführen, können Sie eine separate Datei „aspnet.config“ für jeden Anwendungspool konfigurieren. Auf diese Weise können Sie die Leistung der Threads für jeden Anwendungspool anpassen.

Bei der maxConcurrentRequestsPerCPU-Einstellung deaktiviert die Standardeinstellung „5000“ unter .NET Framework 4 die Anforderungsdrosselung, die von ASP.NET gesteuert wird. Dies gilt jedoch nicht, wenn Sie tatsächlich 5.000 oder mehr Anforderungen pro CPU haben. Die Standardeinstellung hängt stattdessen davon ab, dass der CLR-Threadpool die Parallelität pro CPU automatisch verwaltet. Anwendungen, die die asynchrone Anforderungsverarbeitung umfassend nutzen oder bei denen viele zeitintensive Anforderungen durch die Netzwerk-E/A blockiert sind, profitieren vom erhöhten Standardgrenzwert in .NET Framework 4. Wenn Sie maxConcurrentRequestsPerCPU auf 0 (null) festlegen, wird die Verwendung verwalteter Threads für die Verarbeitung ASP.NET-Anforderungen deaktiviert. Wenn eine Anwendung in einem IIS-Anwendungspool ausgeführt wird, verbleiben Anforderungen im IIS-E/A-Thread. Daher wird die Parallelität durch die IIS-Threadeinstellungen gedrosselt.

Die requestQueueLimit-Einstellung funktioniert auf die gleiche Weise wie das requestQueueLimit-Attribut des processModel-Elements, das in den Web.config-Dateien für ASP.NET-Anwendungen festgelegt wird. Die requestQueueLimit-Einstellung in einer aspnet.config-Datei setzt jedoch die requestQueueLimit-Einstellung in einer Web.config-Datei außer Kraft. Mit anderen Worten: Wenn beide Attribute festgelegt sind (standardmäßig trifft dies zu), hat die requestQueueLimit-Einstellung in der Datei „aspnet.config“ Vorrang.

Beispiel

Im folgenden Beispiel wird gezeigt, wie Sie das prozessweite Verhalten von ASP.NET in der Datei „aspnet.config“ unter den folgenden Umständen konfigurieren:

  • Die Anwendung wird in einem IIS 7.0-Anwendungspool gehostet.

  • IIS 7.0 wird im integrierten Modus ausgeführt.

  • Die Anwendung verwendet .NET Framework 3.5 SP1 oder eine höhere Version.

Die Werte im Beispiel sind die Standardwerte.

<configuration>  
  <system.web>  
    <applicationPool
        maxConcurrentRequestsPerCPU="5000"  
        maxConcurrentThreadsPerCPU="0"
        requestQueueLimit="5000" />  
  </system.web>  
</configuration>  

Siehe auch