Pianificazione periodica delle pianificazioni di <riavvio>
Panoramica
La <schedule>
raccolta dell'elemento <periodicRestart>
specifica gli intervalli di tempo tra i riavvii dei processi di lavoro in un pool di applicazioni.
Compatibilità
Versione | Note |
---|---|
IIS 10.0 | L'elemento <schedule> non è stato modificato in IIS 10.0. |
IIS 8,0 | L'elemento <schedule> non è stato modificato in IIS 8.0. |
IIS 7,5 | L'elemento <schedule> non è stato modificato in IIS 7.5. |
IIS 7.0 | L'elemento <schedule> è stato introdotto in IIS 7.0. |
IIS 6.0 | L'elemento <schedule> sostituisce parti della proprietà metabase IIS 6.0 IIsApplicationPools . |
Installazione
La <applicationPools>
raccolta è inclusa nell'installazione predefinita di IIS 7.
Procedure
Come configurare il riciclo periodico per un pool di applicazioni
Aprire Gestione Internet Information Services (IIS):
Se si usa Windows Server 2012 o Windows Server 2012 R2:
- Sulla barra delle applicazioni fare clic su Server Manager, scegliere Strumenti, quindi fare clic su Gestione Internet Information Services (IIS).
Se si usa Windows 8 o Windows 8.1:
- Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
- Fare clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
Se si usa Windows Server 2008 o Windows Server 2008 R2:
- Sulla barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic su Gestione Internet Information Services (IIS).
Se si usa Windows Vista o Windows 7:
- Sulla barra delle applicazioni fare clic su Start e quindi su Pannello di controllo.
- Fare doppio clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
Nel riquadro Connessioni espandere il nome del server e quindi fare clic su Pool di applicazioni.
Nel riquadro Pool di applicazioni selezionare il pool di applicazioni da modificare.
Nella pagina Condizioni di riciclo della Modifica guidata impostazioni riciclo pool di applicazioni selezionare almeno una delle opzioni nella sezione Intervalli fissi , digitare i valori nelle caselle di testo appropriate e quindi fare clic su Avanti.
(Facoltativo) Nella pagina Riciclaggio eventi da registrare della Modifica guidata impostazioni riciclo pool di applicazioni selezionare gli eventi di riciclo configurabili e gli eventi di riciclo in fase di esecuzione che si desidera che IIS invii al registro eventi quando si verificano e quindi fare clic su Fine.
Configurazione
L'elemento viene <schedule>
configurato a livello di server nel file ApplicationHost.config.
Attributi
Nessuno.
Elementi figlio
Elemento | Descrizione |
---|---|
add |
Elemento facoltativo. Specifica un valore per l'avvio del riciclo periodico di un pool di applicazioni. |
clear |
Elemento facoltativo. Specifica che le impostazioni di configurazione a livello padre devono essere rimosse dalla configurazione a questo livello. |
Esempio di configurazione
Nell'esempio di configurazione seguente viene usato l'elemento del pool <add>
di applicazioni per creare un nuovo pool di applicazioni denominato Contoso. L'elemento <recycling>
configura la registrazione per il riavvio del pool di applicazioni, l'elemento <periodicRestart>
viene configurato al riavvio del pool di applicazioni e l'elemento <processModel>
configura gli attributi shutdownTimeLimit e startupTimeLimit per l'arresto e l'avvio dei processi di lavoro nel pool di applicazioni per 30 secondi ciascuno. Se vengono superati questi limiti di tempo, IIS termina il processo di lavoro.
<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>
Codice di esempio
Gli esempi di codice seguenti aggiungono un pool di applicazioni denominato Contoso al server IIS 7, quindi impostano il pool di applicazioni su riciclo giornaliero alle 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
È anche possibile usare la sintassi seguente:
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
Nota
È necessario assicurarsi di impostare il parametro commit su apphost
quando si usa AppCmd.exe per configurare queste impostazioni. In questo modo le impostazioni di configurazione vengono confermate nella sezione relativa al percorso appropriato nel file 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()