Compartilhar via


Agendamentos periódicos de reinicialização <schedule>

Visão geral

A coleção <schedule> do elemento <periodicRestart> especifica os intervalos de tempo entre reinicializações de processos de trabalho em um pool de aplicativos.

Compatibilidade

Versão Observações
IIS 10.0 O elemento <schedule> não foi modificado no IIS 10.0.
IIS 8.0 O elemento <schedule> não foi modificado no IIS 8.0.
IIS 7.5 O elemento <schedule> não foi modificado no IIS 7.5.
IIS 7.0 O elemento <schedule> foi introduzido no IIS 7.0.
IIS 6,0 O elemento <schedule> substitui partes da propriedade de metabase IIsApplicationPools do IIS 6.0.

Instalação

A coleção <applicationPools> está incluída na instalação padrão do IIS 7.

Instruções

Como configurar a reciclagem periódica para um pool de aplicativos

  1. Abra o Gerenciador dos Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, expanda o nome do servidor e clique em Pools de Aplicativos.

  3. No painel Pools de Aplicativos, selecione o pool de aplicativos que deseja editar.

  4. No painel Ações, clique em Reciclar...
    Image of Application Pools pane showing Default App Pool highlighted.

  5. Na página Condições de Reciclagem do Assistente para Editar Configurações de Reciclagem do Pool de Aplicativos, selecione, pelo menos, uma das opções na seção Intervalos Fixos, digite valores nas caixas de texto apropriadas e, em seguida, clique em Avançar.
    Screenshot of Recycling Conditions page in Edit Application Pool Recycling Settings Wizard.

  6. (Opcional) Na página Eventos de Reciclagem para Log do Assistente para Editar Configurações de Reciclagem do Pool de Aplicativos, selecione os eventos de reciclagem configuráveis e os eventos de reciclagem em tempo de execução que você deseja que o IIS envie para o log de eventos quando eles ocorrerem e, em seguida, clique em Concluir.
    Image of Recycling Events to Log page in Edit Application Pool Recycling Settings Wizard.

Configuração

Você configura o elemento <schedule> no nível do servidor no arquivo ApplicationHost.config.

Atributos

Nenhum.

Elementos filho

Elemento Descrição
add Elemento opcional. Especifica um valor para iniciar a reciclagem periódica de um pool de aplicativos.
clear Elemento opcional. Especifica que as configurações de nível pai devem ser removidas da configuração nesse nível.

Exemplo de configuração

O exemplo de configuração a seguir usa o elemento do pool <add> de aplicativos para criar um novo pool de aplicativos chamado Contoso. O elemento <recycling> configura o registro em log para reinicializações do pool de aplicativos, o elemento <periodicRestart> é configurado quando o pool de aplicativos é reiniciado e o elemento <processModel> configura os atributos shutdownTimeLimit e startupTimeLimit para desligar e iniciar os processos de trabalho no pool de aplicativos por 30 segundos cada. Se esses limites de tempo forem excedidos, o IIS encerrará o processo de trabalho.

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

Exemplo de código

Os exemplos de código a seguir adicionam um pool de aplicativos chamado Contoso ao servidor IIS 7 e, em seguida, definem o pool de aplicativos como reciclagem diária às 3h00.

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

Você também pode usar a seguinte sintaxe:

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

Observação

Defina o parâmetro commit para apphost quando usar AppCmd.exe para definir essas configurações. Isso confirma as definições de configuração para a seção de local apropriado no arquivo 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()