Freigeben über


Periodische Neustarteinstellungen für den <periodicRestart> von Anwendungspools

Übersicht

Das <periodicRestart>-Element enthält Konfigurationseinstellungen, mit denen Sie steuern können, wann ein Anwendungspool wiederverwendet wird. Sie können angeben, dass Internetinformationsdienste (IIS) 7 den Anwendungspool nach einem Zeitintervall (in Minuten) oder zu einer bestimmten Uhrzeit täglich wiederverwendet. Sie können IIS auch so konfigurieren, dass die Wiederverwendung auf der Menge des virtuellen Arbeitsspeichers oder physischen Arbeitsspeichers basiert, den der Arbeitsprozess im Anwendungspool verwendet oder IIS so konfigurieren, dass der Anwendungspool wiederverwendet wird, nachdem der Arbeitsprozess eine bestimmte Anzahl von Anforderungen verarbeitet hat.

Kompatibilität

Version Hinweise
IIS 10.0 Das <periodicRestart> Element wurde in IIS 10.0 nicht geändert.
IIS 8.5 Das <periodicRestart> Element wurde in IIS 8.5 nicht geändert.
IIS 8.0 Das <periodicRestart> Element wurde in IIS 8.0 nicht geändert.
IIS 7.5 Das <periodicRestart> Element wurde in IIS 7.5 nicht geändert.
IIS 7.0 Das <periodicRestart>-Element wurde in IIS 7.0 eingeführt.
IIS 6.0 Das <periodicRestart>-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 periodischen Wiederverwendung für einen Anwendungspool

  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 anschließend auf Anwendungspools.

  3. Wählen Sie im Bereich Anwendungspools den Anwendungspool aus, den Sie bearbeiten wollen.

  4. Klicken Sie im Bereich Aktionen auf Wiederverwendung....
    Screenshot of the Actions pane. Under Edit Application Pool, Recycling is highlighted.

  5. 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.
    Screenshot of the Edit Application Pool Recycling Settings page. The Fixed Intervals section is located at the top.

  6. (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.
    Screenshot of the Edit Application Pool Recycling Settings page. The scheduled times option is selected.

Konfiguration

Das <periodicRestart>-Element ist auf Serverebene in der Datei ApplicationHost.config konfigurierbar.

Attribute

Attribut Beschreibung
memory Optionales Uint-Attribut.

Gibt die Menge des virtuellen Arbeitsspeichers (in Kilobyte) an, die ein Arbeitsprozess verwenden kann, bevor der Arbeitsprozess wiederverwendet wird.

Der Standardwert ist 0, wodurch das Attribut deaktiviert wird.
privateMemory Optionales Uint-Attribut.

Gibt die Menge des privaten Arbeitsspeichers (in Kilobyte) an, die ein Arbeitsprozess verwenden kann, bevor der Arbeitsprozess wiederverwendet wird.

Der Standardwert ist 0, wodurch das Attribut deaktiviert wird.
requests Optionales Uint-Attribut.

Gibt an, dass der Arbeitsprozess nach dem Verarbeiten einer bestimmten Anzahl von Anforderungen wiederverwendet werden soll.

Der Standardwert ist 0, wodurch das Attribut deaktiviert wird.
time Optionales timeSpan-Attribut.

Gibt an, dass der Arbeitsprozess nach Ablauf einer bestimmten Zeitspanne wiederverwendet werden soll.

Der Standardwert ist 29:00:00 (29 Stunden).

Untergeordnete Elemente

Element Beschreibung
schedule Optionales Element.

Gibt die Planung periodischer Neustarts von Anwendungspools an.

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 Commitparameter 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()