Wiederverwendungseinstellungen eines Anwendungspools <recycling>
Übersicht
Übersicht Das <recycling>
-Element enthält Konfigurationseinstellungen, die die Bedingungen steuern, die IIS 7 zum Neustart eines Anwendungspools veranlassen. Sie können auch die Arten von Ereignissen steuern, die IIS in das Ereignisprotokoll schreibt, wenn der Anwendungspool wiederverwendet wird.
Sie können angeben, dass IIS einen Anwendungspool in festgelegten Intervallen (z. B. alle 180 Minuten), zu einem bestimmten Zeitpunkt jeden Tag oder nach Erhalt einer bestimmten Anzahl von Anforderungen wiederverwenden soll. Sie können das <recycling>
-Element auch so konfigurieren, dass der Anwendungspool neu gestartet wird, wenn der virtuelle Arbeitsspeicher des Arbeitsprozesses und die Nutzung des physischen Speichers einen bestimmten Schwellenwert erreicht.
Sie können das <recycling>
-Element verwenden, um zwei Klassen von Ereignissen anzugeben, die beim Wiederverwenden eines Anwendungspools durch IIS im Ereignisprotokoll protokolliert werden sollen. Die erste Klasse enthält Wiederverwendungsereignisse, die Sie konfigurieren können, z. B. die im vorherigen Absatz erwähnten. Die zweite Klasse umfasst Wiederverwertungsereignisse zur Laufzeit, wie z. B. Wiederverwertungsereignisse nach Bedarf, Wiederverwertungsereignisse, die durch Konfigurationsänderungen in der Anwendung oder in Anwendungen, die im Anwendungspool laufen, ausgelöst werden, oder Wiederverwertungsereignisse, die durch einen ungesunden ISAPI-Filter (Internet Server Application Programming Interface) oder eine ISAPI-Erweiterung verursacht werden.
Das <recycling>
-Element verwendet das folgende Attribut und untergeordnete Element, um diese Features zu implementieren:
- logEventOnRecycle-Attribut
- periodicRestart-Element
Kompatibilität
Version | Hinweise |
---|---|
IIS 10.0 | Der Standardwert des logEventOnRecycle -Attributs wurde in IIS 10.0 geändert. |
IIS 8.5 | Das <recycling> Element wurde in IIS 8.5 nicht geändert. |
IIS 8.0 | Das <recycling> Element wurde in IIS 8.0 nicht geändert. |
IIS 7.5 | Das <recycling> Element wurde in IIS 7.5 nicht geändert. |
IIS 7.0 | Das <recycling> -Element wurde in IIS 7.0 eingeführt. |
IIS 6.0 | Das <recycling> -Element ersetzt Teile der IIS 6.0 IIsApplicationPools-Metabasiseigenschaft. |
Setup
Die <applicationPools>
-Auflistung ist in der Standardinstallation von IIS 7 enthalten.
Gewusst wie
Einrichten der regelmäßigen Wiederverwendung für einen Anwendungspool
Öffnen Sie den Internet Information Services (IIS) Manager:
Wenn Sie Windows Server 2012 oder Windows Server 2012 R2 verwenden:
- Klicken Sie 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.
Erweitern Sie im Bereich Verbindungen den Servernamen, und klicken Sie anschließend auf Anwendungspools.
Wählen Sie im Bereich Anwendungspools den Anwendungspool aus, den Sie bearbeiten wollen.
Wählen Sie auf der Seite Wiederverwendungsbedingungen des Assistenten für die Wiederverwendungseinstellungen des Anwendungspools mindestens eine der Optionen im Abschnitt Feste Intervalle aus, geben Sie Werte in die entsprechenden Textfelder ein und klicken Sie dann auf Weiter.
(Optional) Wählen Sie auf der Seite Wiederverwendungsereignisse für die Protokollierung des Assistenten zum Bearbeiten der Wiederverwendungseinstellungen für den Anwendungspool die konfigurierbaren Wiederverwendungsereignisse und die Wiederverwendungsereignisse während der Laufzeit aus, die IIS beim Auftreten an das Ereignisprotokoll senden soll, und klicken Sie dann auf Fertig stellen.
Konfiguration
Das <recycling>
-Element ist auf Serverebene in der Datei ApplicationHost.config konfigurierbar.
Attribute
Attribut | Beschreibung | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
disallowOverlappingRotation |
Optionales boolesches Attribut. Gibt an, ob der WWW-Dienst einen anderen Arbeitsprozess starten soll, um den vorhandenen Arbeitsprozess zu ersetzen, während dieser Prozess beendet wird. Der Wert dieser Eigenschaft sollte auf true festgelegt werden, wenn der Arbeitsprozess einen Anwendungscode lädt, der nicht mehrere Arbeitsprozesse unterstützt. Der Standardwert ist false . |
||||||||||||||||||
disallowRotationOnConfigChange |
Optionales boolesches Attribut. Gibt an, ob der WWW-Dienst die Arbeitsprozesse in einem Anwendungspool rotieren soll, wenn sich die Konfiguration geändert hat. Der Standardwert ist false . |
||||||||||||||||||
logEventOnRecycle |
Optionales Flags-Attribut. Gibt an, dass IIS ein Ereignis protokollieren soll, wenn ein Anwendungspool wiederverwendet wird. In der Eigenschaft logEventOnRecycle muss ein Bit gesetzt sein, das dem Grund für die Wiederverwendung entspricht, wenn der IIS das Ereignis protokollieren soll. Das Attribut logEventOnRecycle kann einen oder mehrere der folgenden möglichen Werte aufweisen. Wenn Sie mehrere Werte angeben, trennen Sie diese durch ein Komma (,). Die Standardkennzeichnungen für Versionen von IIS vor IIS 10 sind Time , Memory und PrivateMemory ; für IIS 10 und höher sind es Time , Requests , Schedule , Memory , IsapiUnhealthy , OnDemand , ConfigChange und PrivateMemory ;
|
Untergeordnete Elemente
Element | Beschreibung |
---|---|
periodicRestart |
Optionales Element. Gibt Bedingungen an, unter denen Anwendungspools wiederverwendet werden. |
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-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 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 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()