Freigeben über


Hinzufügen von Anwendungspools <hinzufügen>

Übersicht

Das <add> Element des <applicationPools> Elements steuert die Konfigurationseinstellungen für einen IIS 7- und höher-Anwendungspool. Sie erstellen ein <add> Element in der ApplicationHost.config-Datei für jeden Anwendungspool, den Sie auf Ihrem IIS-Server ausführen möchten.

Das <add> Element kann Attribute und untergeordnete Elemente enthalten, die den Pipelineverarbeitungsmodus und die Version von .NET Framework konfigurieren, die die Arbeitsprozesse im Anwendungspool für eingehende Anforderungen verwenden. Dieses Element enthält auch untergeordnete Elemente, die Anwendungspool-Identitäts-, Leistungs- und Integritäts- und Recycling-Anwendungspooleinstellungen konfigurieren.

Wenn Sie einen neuen Anwendungspool in IIS 7 und höher erstellen, müssen Sie mindestens dem Anwendungspool einen eindeutigen Namen zuweisen. Konfigurieren Sie alle anderen Eigenschaften nach Bedarf für die Anwendungen, die den Anwendungspool verwenden.

Neu in IIS 7.5 und höher

Ab IIS 7.5 können Sie eine Anwendung so konfigurieren, dass sie automatisch gestartet wird, indem Sie die Attribute managedRuntimeLoader, CLRConfigFile und startMode des <add> Elements verwenden. Diese Attribute konfigurieren den Namen der verwalteten DLL, die das Laden der Laufzeit für Ihre Anwendung, die Konfigurationsdatei für die Common Language Runtime für die Anwendung und den Starttyp für die Anwendung bereitstellt.

Auch neu in IIS 7.5 und höher ist ein neuer ApplicationPoolIdentity Typ für das Attribut IdentityType des <processModel> Elements. Dieser neue Identitätstyp ist jetzt die Standardprozessidentität für Anwendungen und ermöglicht es, die Sicherheit für Ihre Inhaltsbereiche festzulegen, um den Zugriff für einen bestimmten Anwendungspool zu ermöglichen. Dazu legen Sie Ihre Sicherheit mithilfe des Namens eines Anwendungspools mithilfe von Syntax wie „IIS AppPool\DefaultAppPool“ fest. Diese Identität wird dynamisch erstellt, wodurch der Angriffsbereich des Servers erheblich reduziert wird.

Kompatibilität

Version Hinweise
IIS 10.0 Das <add> Element wurde in IIS 10.0 nicht geändert.
IIS 8.5 Das <add> Element wurde in IIS 8.5 nicht geändert.
IIS 8.0 Der Standardwert des managedRuntimeVersion Attributs wurde geändert zu ""und v4.0 wurde als Wert hinzugefügt für managedRuntimeVersion.
IIS 7.5 Das Element <add> des Elements <applicationPools> wurde in IIS 7.5 aktualisiert, um Attribute einzuschließen, mit denen Sie Anwendungen vorab laden können.
IIS 7.0 Das Element <add> der Sammlung <applicationPools> wurde in IIS 7.0 eingeführt.
IIS 6.0 Die Sammlung <applicationPools> ersetzt Teile der IIS 6.0 Metabase-Eigenschaft IIsApplicationPools .

Setup

Die Sammlung <applicationPools> ist in der Standardinstallation von IIS 7 und höher enthalten.

Gewusst wie

Erstellen eines neuen Anwendungspools

  1. Öffnen Sie den Internet Information Services (IIS) Manager:

    • Wenn Sie Windows Server 2012 oder Windows Server 2012 R2 verwenden:

      • Klicken Sie der der Taskleiste auf Server-Managerdann auf Toolsund dann auf den Internet Information Services (IIS) Manager.
    • Wenn Sie Windows 8 oder Windows 8.1 verwenden:

      • Halten Sie die Windows-Taste gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf "Systemsteuerung".
      • Klicken Sie auf Verwaltungund doppelklicken Sie dann auf den Internet Information Services (IIS) Manager.
    • Wenn Sie Windows Server 2008 oder Windows Server 2008 R2 verwenden:

      • Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltungund dann auf den Internet Information Services (IIS) Manager.
    • Wenn Sie Windows Vista oder Windows 7 verwenden:

      • Klicken Sie auf der Taskleiste auf "Start" und dann auf "Systemsteuerung".
      • Doppelklicken Sie auf Verwaltungund doppelklicken Sie dann auf den Internet Information Services (IIS) Manager.
  2. Erweitern Sie im Bereich Verbindungen den Servernamen und klicken Sie dann auf Anwendungspools.

  3. Klicken Sie im Bereich Aktionen auf Anwendungspool hinzufügen ....

  4. Geben Sie im Dialogfeld Anwendungspool hinzufügen den Namen des Anwendungspools in das Feld Name: ein, wählen Sie in der Dropdownliste .NET Framework-Version: die .NET Framework-Version aus, die Ihre Website oder Anwendung verwendet, wählen Sie in der Dropdownliste Verwendete-Pipeline-Modus: Integriert oder Klassisch aus, und klicken Sie dann auf "OK".
    Screenshot of the Add Application Pool dialog box with fields for Name, dot NET Framework version and Managed pipeline mode.

Konfigurieren des Anwendungspools für eine vorhandene Site oder eine vorhandene Anwendung

  1. Erweitern Sie im Bereich VerbindungenSites, und navigieren Sie dann zur Site oder Anwendung, die Sie dem Anwendungspool hinzufügen möchten.
  2. Klicken Sie im Bereich Aktionen auf Erweiterte Einstellungen ...
  3. Klicken Sie im Abschnitt Allgemein des Dialogfelds Erweiterte Einstellungen auf den Eintrag Anwendungspool, und klicken Sie dann auf die Schaltfläche mit den Auslassungspunkten.
    Screenshot that shows the Advanced Settings dialog box with Application Pool highlighted.
  4. Wählen Sie im Dialogfeld Anwendungspool auswählen den Anwendungspool aus dem Dropdownfeld Anwendungspool:, klicken Sie auf OK, und klicken Sie dann erneut auf OK ".
    Screenshot of Select Application Pool dialog box showing Contoso selected from the application pool drop down box.

Konfiguration

Das Element <add> der Sammlung <applicationPools> kann auf Serverebene in der Datei ApplicationHost.config konfiguriert werden.

Attribute

Attribut Beschreibung
autoStart Optionales boolesches Attribut.

Wenn true, dann zeigt das dem World Wide Web Publishing Service (W3SVC), dass der Anwendungspool automatisch gestartet werden soll, wenn er erstellt wird oder wenn IIS gestartet wird.

Der Standardwert ist true.
CLRConfigFile Optionaler Zeichenfolgenwert.

Gibt die .NET-Konfigurationsdatei für den Anwendungspool an.

Hinweis: Dieses Attribut wurde in IIS 7.5 hinzugefügt.

Es ist kein Standardwert vorhanden.
enable32BitAppOnWin64 Optionales boolesches Attribut.

Wenn true, dann kann eine 32-Bit-Anwendung auf einem Computer ausgeführt werden, auf dem eine 64-Bit-Version von Windows ausgeführt wird.

Der Standardwert ist false.
enableConfigurationOverride Optionales boolesches Attribut.

Wenn true, dann gibt das an, dass delegierte Einstellungen in Web.config-Dateien für Anwendungen innerhalb dieses Anwendungspools verarbeitet werden. Wenn false, dann werden alle Einstellungen in Web.config-Dateien für diesen Anwendungspool ignoriert.

Der Standardwert ist true.
managedPipelineMode Optionales Enumerationsattribut.

Gibt den Anforderungsverarbeitungsmodus an, der zum Verarbeiten von Anforderungen für verwaltete Inhalte verwendet wird.

Das Attribut managedPipelineMode kann einen der folgenden möglichen Werte aufweisen.
Wert Beschreibung
Classic Gibt an, dass der Anwendungspool separate IIS- und ASP.NET-Anforderungsverarbeitungspipelins verwendet, die mit ASP.NET 1.1-Anwendungen und ASP.NET 2.0- oder höher-Anwendungen funktionieren, die nicht im integrierten Modus funktionieren.

Der numerische Wert ist 1.
Integrated Gibt an, dass der Anwendungspool die integrierte IIS- und ASP.NET-Anforderungsverarbeitungspipeline verwendet, die nur mit ASP.NET 2.0- oder höher Anwendungen funktioniert.

Der numerische Wert ist 0.
Der Standardwert ist Integrated.
managedRuntimeLoader Optionales Zeichenfolgeattribut.

Gibt das verwaltete Ladeprogramm an, das zum Vorabladen des Anwendungspools verwendet werden soll.

Hinweis: Dieses Attribut wurde in IIS 7.5 hinzugefügt.

Der Standardwert ist webengine4.dll.
managedRuntimeVersion Optionales Zeichenfolgeattribut.

Gibt die CLR-Version an, die vom Anwendungspool verwendet werden soll.

Das Attribut managedRuntimeVersion kann einer der folgenden möglichen Werte sein:
Wert Beschreibung
v1.1 Gibt an, dass der Anwendungspool die CLR-Version 1.1 verwendet.
v2.0 Gibt an, dass der Anwendungspool die CLR-Version 2.0 verwendet, die .NET Framework Version 2.0, 3.0 oder 3.5 sein kann.
v4.0 Gibt an, dass der Anwendungspool die CLR-Version 4.0 verwendet, die .NET Framework Version 4.0 oder 4.5 sein kann.
Der Standardwert ist "".
name Erforderliches Zeichenfolgenattribut.

Gibt einen eindeutigen Namen für einen Anwendungspool auf dem Server an.
passAnonymousToken Optionales boolesches Attribut.

Wenn true, dann erstellt und übergibt der Windows-Prozessaktivierungsdienst (WAS) ein Token für das integrierte anonyme IUSR-Benutzerkonto an das Modul „Anonyme Authentifizierung“. Das Modul „Anonyme Authentifizierung“ verwendet das Token zum Identitätswechsel des integrierten Kontos. Wenn PassAnonymousToken false ist, wird das Token nicht übergeben.

Hinweis: Das anonyme Benutzerkonto des IUSR ersetzt den IIS_MachineName des anonymen Kontos. Das IUSR-Konto kann von IIS oder anderen Anwendungen verwendet werden. Es verfügt über keine Berechtigungen, die ihm während des Setups zugewiesen wurden.

Der Standardwert ist true.
queueLength Optionales Uint-Attribut.

Teilt HTTP.sys mit, wie viele Anforderungen für einen Anwendungspool in die Warteschlange gestellt werden, bevor zukünftige Anfragen abgelehnt werden. Der Standardwert ist 1000.

Wenn der Wert für diese Eigenschaft überschritten wird, lehnt IIS nachfolgende Anfragen mit dem Fehler 503 ab. Wenn die Einstellung loadBalancerCapabilitiestrue ist, dann wird die Verbindung geschlossen, anstatt Anfragen mit 503 abzulehnen. Weitere Informationen zu loadBalancerCapabilitiesfinden Sie unter Fehlereinstellungen für einen Anwendungspool.
startMode Optionaler Enumerationswert.

Gibt den Starttyp für den Anwendungspool an.

Hinweis: Dieses Attribut wurde in IIS 7.5 hinzugefügt.

Das Attribut startMode kann einer der folgenden möglichen Werte sein:
Wert Beschreibung
AlwaysRunning Gibt an, dass der Windows-Prozessaktivierungsdienst (WAS) immer den Anwendungspool startet. Dieses Verhalten ermöglicht es einer Anwendung, die Betriebssystemumgebung vor jeder Bereitstellung von HTTP-Anforderungen zu laden, wodurch der Startprozess für anfängliche HTTP-Anforderungen für die Anwendung reduziert wird.

Der numerische Wert ist 1.
OnDemand Gibt an, dass der Windows-Prozessaktivierungsdienst (WAS) den Anwendungspool startet, wenn eine HTTP-Anforderung für eine Anwendung erfolgt, die im Anwendungspool gehostet wird. Dieses Verhalten ähnelt dem WAS-Verhalten in früheren Versionen von IIS.

Der numerische Wert ist 0.
Der Standardwert ist OnDemand.

Untergeordnete Elemente

Element Beschreibung
cpu Konfiguriert CPU-Affinität und CPU-Aktionen.
environmentVariables Konfiguriert eine Sammlung von Umgebungsvariablen, die an Arbeitsprozesse übergeben werden.
failure Konfiguriert Aktionen, die ausgeführt werden sollen, wenn ein Anwendungspool fehlschlägt.
processModel Konfiguriert Prozessverwaltungsattribute für einen Anwendungspool.
recycling Konfiguriert das Recycling des Anwendungspools.

Konfigurationsbeispiel

Im folgenden Konfigurationsbeispiel wird das Anwendungspoolelement <add> verwendet, um einen neuen Anwendungspool namens Contoso zu erstellen. Das Element <recycling> konfiguriert die Protokollierung für den Neustart des Anwendungspools, das Element <periodicRestart> konfiguriert, wann der Anwendungspool neu gestartet wird, und das Element <processModel> konfiguriert die Attribute shutdownTimeLimit und startupTimeLimit für das Herunterfahren und Starten der Arbeitsprozesse im Anwendungspool für jeweils 30 Sekunden. Wenn diese Zeitlimits überschritten werden, beendet IIS den Arbeitsprozess.

<add name="Contoso">
   <recycling logEventOnRecycle="Schedule">
      <periodicRestart>
         <schedule>
            <clear />
            <add value="03:00:00" />
         </schedule>
      </periodicRestart>
   </recycling>
   <processModel identityType="NetworkService" shutdownTimeLimit="00:00:30" startupTimeLimit="00:00:30" />
</add>

Beispielcode

Die folgenden Codebeispiele fügen einen Anwendungspool namens Contoso zu Ihrem IIS 7- und höher-Server hinzu, und legen dann den Anwendungspool zum täglichen Wiederverwenden um 3:00 Uhr fest.

AppCmd.exe

appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso']" /commit:apphost

appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso'].recycling.periodicRestart.schedule.[value='03:00:00']" /commit:apphost

Sie können auch die folgende Syntax verwenden:

appcmd.exe add apppool /name:"Contoso"

appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso'].recycling.periodicRestart.schedule.[value='03:00:00']" /commit:apphost

Hinweis

Sie müssen unbedingt den Parameter commit auf apphost 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 applicationPoolsSection = config.GetSection("system.applicationHost/applicationPools");
         ConfigurationElementCollection applicationPoolsCollection = applicationPoolsSection.GetCollection();
         ConfigurationElement addElement = applicationPoolsCollection.CreateElement("add");
         addElement["name"] = @"Contoso";
         ConfigurationElement recyclingElement = addElement.GetChildElement("recycling");
         ConfigurationElement periodicRestartElement = recyclingElement.GetChildElement("periodicRestart");
         ConfigurationElementCollection scheduleCollection = periodicRestartElement.GetCollection("schedule");
         ConfigurationElement addElement1 = scheduleCollection.CreateElement("add");
         addElement1["value"] = TimeSpan.Parse("03:00:00");
         scheduleCollection.Add(addElement1);
         applicationPoolsCollection.Add(addElement);
         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 applicationPoolsSection As ConfigurationSection = config.GetSection("system.applicationHost/applicationPools")
      Dim applicationPoolsCollection As ConfigurationElementCollection = applicationPoolsSection.GetCollection
      Dim addElement As ConfigurationElement = applicationPoolsCollection.CreateElement("add")
      addElement("name") = "Contoso"
      Dim recyclingElement As ConfigurationElement = addElement.GetChildElement("recycling")
      Dim periodicRestartElement As ConfigurationElement = recyclingElement.GetChildElement("periodicRestart")
      Dim scheduleCollection As ConfigurationElementCollection = periodicRestartElement.GetCollection("schedule")
      Dim addElement1 As ConfigurationElement = scheduleCollection.CreateElement("add")
      addElement1("value") = TimeSpan.Parse("03:00:00")
      scheduleCollection.Add(addElement1)
      applicationPoolsCollection.Add(addElement)
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var applicationPoolsSection = adminManager.GetAdminSection("system.applicationHost/applicationPools", "MACHINE/WEBROOT/APPHOST");
var applicationPoolsCollection = applicationPoolsSection.Collection;

var addElement = applicationPoolsCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "Contoso";
var recyclingElement = addElement.ChildElements.Item("recycling");
var periodicRestartElement = recyclingElement.ChildElements.Item("periodicRestart");
var scheduleCollection = periodicRestartElement.ChildElements.Item("schedule").Collection;
var addElement1 = scheduleCollection.CreateNewElement("add");
addElement1.Properties.Item("value").Value = "03:00:00";
scheduleCollection.AddElement(addElement1);
applicationPoolsCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set applicationPoolsSection = adminManager.GetAdminSection("system.applicationHost/applicationPools", "MACHINE/WEBROOT/APPHOST")
Set applicationPoolsCollection = applicationPoolsSection.Collection

Set addElement = applicationPoolsCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "Contoso"
Set recyclingElement = addElement.ChildElements.Item("recycling")
Set periodicRestartElement = recyclingElement.ChildElements.Item("periodicRestart")
Set scheduleCollection = periodicRestartElement.ChildElements.Item("schedule").Collection
Set addElement1 = scheduleCollection.CreateNewElement("add")
addElement1.Properties.Item("value").Value = "03:00:00"
scheduleCollection.AddElement(addElement1)
applicationPoolsCollection.AddElement(addElement)

adminManager.CommitChanges()