Partager via


Planifications de redémarrage périodiques <schedule>

Vue d’ensemble

La collection <schedule> de l’élément <periodicRestart> définit les intervalles de temps entre les redémarrages des processus de travail dans un pool d’applications.

Compatibilité

Version Notes
IIS 10.0 L’élément <schedule> n’a pas été modifié dans IIS 10.0.
IIS 8.0 L’élément <schedule> n’a pas été modifié dans IIS 8.0.
IIS 7.5 L’élément <schedule> n’a pas été modifié dans IIS 7.5.
IIS 7.0 L’élément <schedule> a été introduit dans IIS 7.0.
IIS 6.0 L’élément <schedule> remplace les parties de la propriété de la métabase IIS 6.0 IIsApplicationPools.

Programme d’installation

L’élément <applicationPools> est inclus dans l’installation par défaut d’IIS 7.

Procédure

Comment configurer le recyclage périodique pour un pool d’applications

  1. Ouvrez le Gestionnaire des services internet (IIS) :

    • Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :

      • Dans la barre des tâches, cliquez sur Gestionnaire de serveur, cliquez sur Outils, puis sur Gestionnaire des services internet (IIS).
    • Si vous utilisez Windows 8 ou Windows 8.1 :

      • Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
      • Cliquez sur Outils d'administration, puis double-cliquez sur Gestionnaire des services internet (IIS).
    • Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :

      • Dans la barre des tâches, cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire des services internet (IIS).
    • Si vous utilisez Windows Vista ou Windows 7 :

      • Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
      • Double-cliquez sur Outils d'administration, puis double-cliquez sur Gestionnaire des services internet (IIS).
  2. Dans le volet Connexions, développez le nom du serveur, puis cliquez sur Pools d'applications.

  3. Dans le volet Pools d’applications, sélectionnez le pool d’applications que vous souhaitez modifier.

  4. Dans le volet Actions, cliquez sur Recyclage...
    Image of Application Pools pane showing Default App Pool highlighted.

  5. Dans la page Conditions de recyclage de l’assistant Modifier les paramètres de recyclage du pool d’applications, sélectionnez au moins l’une des options de la section Intervalles fixes, saisissez des valeurs dans les zones de texte appropriées, puis cliquez sur Suivant.
    Screenshot of Recycling Conditions page in Edit Application Pool Recycling Settings Wizard.

  6. (Facultatif) Dans la page Événements de recyclage dans le journal de l’assistant Modifier les paramètres de recyclage du pool d’applications, sélectionnez les événements de recyclage configurables et les événements de recyclage au moment de l’exécution que vous souhaitez qu’IIS envoie au journal des événements lorsqu’ils se produisent, puis cliquez sur Terminer.
    Image of Recycling Events to Log page in Edit Application Pool Recycling Settings Wizard.

Configuration

Vous pouvez configurer l’élément <schedule> au niveau du serveur dans le fichier ApplicationHost.config.

Attributs

Aucune.

Éléments enfants

Élément Description
add Élément facultatif. Définit une valeur pour démarrer le recyclage périodique d’un pool d’applications.
clear Élément facultatif. Définit que les paramètres de configuration au niveau parent doivent être supprimés de la configuration à ce niveau.

Exemple Configuration

L’exemple de configuration suivant utilise l’élément <add> du pool d’applications pour créer un pool d’applications nommé Contoso. L’élément <recycling> configure la journalisation des redémarrages du pool d’applications, l’élément <periodicRestart> configure lorsque le pool d’applications redémarre et l’élément <processModel> configure les attributs shutdownTimeLimit et startupTimeLimit pour arrêter et démarrer les processus de travail dans le pool d’applications pendant 30 secondes chacune. Si ces limites de temps sont dépassées, IIS met fin au processus de travail.

<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>

Exemple de code

Les exemples de code suivants ajoutent un pool d’applications nommé Contoso à votre serveur IIS 7, puis définissez le pool d’applications sur recyclage quotidien à 3 : 00.

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

Vous pouvez également utiliser la syntaxe suivante :

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

Remarque

Vous devez veiller à définir le paramètre commit sur apphost quand vous utilisez AppCmd.exe pour configurer ces paramètres. Cela valide les paramètres de configuration à l’emplacement de la section appropriée dans le fichier ApplicationHost.config.

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