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
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).
Dans le volet Connexions, développez le nom du serveur, puis cliquez sur Pools d'applications.
Dans le volet Pools d’applications, sélectionnez le pool d’applications que vous souhaitez modifier.
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.
(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.
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()