Compartir a través de


Programaciones de reinicio periódicos <schedule>

Información general

La colección <schedule> del elemento <periodicRestart> especifica los intervalos de tiempo entre los reinicios de los procesos de trabajo en un grupo de aplicaciones.

Compatibilidad

Versión Notas
IIS 10.0 El elemento <schedule> no se modificó en IIS 10.0.
IIS 8.0 El elemento <schedule> no se modificó en IIS 8.0.
IIS 7.5 El elemento <schedule> no se modificó en IIS 7.5.
IIS 7.0 El elemento <schedule> se introdujo en IIS 7.0.
IIS 6,0 El elemento <schedule> reemplaza partes de la propiedad de metabase IIsApplicationPools de IIS 6.0.

Configuración

La colección <applicationPools> se incluye en la instalación predeterminada de IIS 7.

Procedimientos

Configuración del reciclaje periódico para un grupo de aplicaciones

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, expanda el nombre del equipo y, a continuación, haga clic en Grupos de aplicaciones.

  3. En el panel Grupos de aplicaciones, seleccione el grupo de aplicaciones que desea editar.

  4. En el panel Acciones, haga clic en Reciclaje....
    Image of Application Pools pane showing Default App Pool highlighted.

  5. En la página Condiciones de reciclaje del Asistente para editar la configuración de reciclaje del grupo de aplicaciones, seleccione al menos una de las opciones de la sección Intervalos fijos, escriba valores en los cuadros de texto adecuados y, a continuación, haga clic en Siguiente.
    Screenshot of Recycling Conditions page in Edit Application Pool Recycling Settings Wizard.

  6. (Opcional) En la página Eventos de reciclaje a registro del Asistente para editar la configuración de reciclaje del grupo de aplicaciones, seleccione los eventos de reciclaje configurables y los eventos de reciclaje en tiempo de ejecución que quiere que IIS envíe al registro de eventos cuando se produzcan y, a continuación, haga clic en Finalizar.
    Image of Recycling Events to Log page in Edit Application Pool Recycling Settings Wizard.

Configuración

Puede configurar el elemento <schedule> en el nivel de servidor en el archivo ApplicationHost.config.

Atributos

Ninguno.

Elementos secundarios

Elemento Descripción
add Elemento opcional. Especifica un valor para iniciar el reciclaje periódico de un grupo de aplicaciones.
clear Elemento opcional. Especifica que los valores de configuración de nivel primario deben quitarse de la configuración en este nivel.

Ejemplo de configuración

En el ejemplo de configuración siguiente se usa el elemento <add> del grupo de aplicaciones para crear un grupo de aplicaciones denominado Contoso. El elemento <recycling> configura el registro para los reinicios del grupo de aplicaciones, el elemento <periodicRestart> configura cuándo se reinicia el grupo de aplicaciones y el elemento <processModel> configura los atributos shutdownTimeLimit y startupTimeLimit para apagar e iniciar los procesos de trabajo en el grupo de aplicaciones durante 30 segundos cada uno. Si se superan estos límites de tiempo, IIS finaliza el proceso de trabajo.

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

Código de ejemplo

En los ejemplos de código siguientes se agrega un grupo de aplicaciones denominado Contoso al servidor IIS 7 y, a continuación, se establece el grupo de aplicaciones en reciclaje diario a las 3:00 a.m.

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

También puede usar la sintaxis siguiente:

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:

Debe asegurarse de establecer el parámetro de confirmación en apphost cuando use AppCmd.exe para configurar estas opciones. Esto confirma los valores de configuración en la sección de ubicación adecuada del archivo 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()