Compartir a través de


Configuración de reinicio periódico para reciclaje del grupo de aplicaciones <periodicRestart>

Información general

El elemento <periodicRestart> contiene opciones de configuración que permiten controlar cuándo se recicla un grupo de aplicaciones. Puede especificar que Internet Information Services (IIS) 7 recicle el grupo de aplicaciones después de un intervalo de tiempo (en minutos) o en una hora específica cada día. También puede configurar IIS para basar el reciclaje en la cantidad de memoria virtual o memoria física que el proceso de trabajo del grupo de aplicaciones usa o configura IIS para reciclar el grupo de aplicaciones después de que el proceso de trabajo haya procesado un número específico de solicitudes.

Compatibilidad

Versión Notas
IIS 10.0 El elemento <periodicRestart> no se modificó en IIS 10.0.
IIS 8.5 El elemento <periodicRestart> no se modificó en IIS 8.5.
IIS 8.0 El elemento <periodicRestart> no se modificó en IIS 8.0.
IIS 7.5 El elemento <periodicRestart> no se modificó en IIS 7.5.
IIS 7.0 El elemento <periodicRestart> se introdujo en IIS 7.0.
IIS 6,0 El elemento <periodicRestart> 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....
    Screenshot of the Actions pane. Under Edit Application Pool, Recycling is 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 the Edit Application Pool Recycling Settings page. The Fixed Intervals section is located at the top.

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

Configuración

El elemento <periodicRestart> se puede configurar en el nivel de servidor en el archivo ApplicationHost.config.

Atributos

Atributo Descripción
memory Atributo uint opcional.

Especifica la cantidad de memoria virtual (en kilobytes) que un proceso de trabajo puede usar antes de reciclar el proceso de trabajo.

El valor predeterminado es 0, que deshabilita el atributo.
privateMemory Atributo uint opcional.

Especifica la cantidad de memoria privada (en kilobytes) que un proceso de trabajo puede usar antes de que el proceso de trabajo se recicla.

El valor predeterminado es 0, que deshabilita el atributo.
requests Atributo uint opcional.

Especifica que el proceso de trabajo se debe reciclar después de procesar un número específico de solicitudes.

El valor predeterminado es 0, que deshabilita el atributo.
time Atributo timeSpan opcional.

Especifica que el proceso de trabajo debe reciclarse una vez transcurrido un período de tiempo especificado.

El valor predeterminado es 29:00:00 (29 horas).

Elementos secundarios

Elemento Descripción
schedule Elemento opcional.

Especifica la programación de reinicios periódicos de grupos de aplicaciones.

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