Histórico de configuração <configHistory>

Visão geral

O elemento <configHistory> define as configurações para o recurso de histórico de configuração interno do IIS, que mantém um histórico de alterações em execução nos arquivos de configuração. Esse histórico é especialmente útil para a recuperação de erros cometidos ao editar manualmente seus arquivos de configuração.

Por exemplo, se você estivesse fazendo alterações no arquivo ApplicationHost.config e as alterações contivessem sintaxe inválida, os usuários finais veriam o seguinte erro ao navegar até seu site:

Erro HTTP 503. O serviço está indisponível.

Para resolver o problema, você só precisaria copiar o ApplicationHost.config da pasta de histórico para a pasta %windir%\system32\inetsrv\config a fim de restaurar o servidor para o estado operacional.

Observação

O recurso de histórico de configuração requer que o Serviço de Ajuda do Host do Aplicativo esteja em execução no servidor; se esse serviço for interrompido ou desabilitado, as alterações nos arquivos de configuração não serão mantidas na pasta de histórico.

Compatibilidade

Versão Observações
IIS 10.0 O elemento <configHistory> não foi modificado no IIS 10.0.
IIS 8.5 O elemento <configHistory> não foi modificado no IIS 8.5.
IIS 8.0 O elemento <configHistory> não foi modificado no IIS 8.0.
IIS 7.5 O elemento <configHistory> não foi modificado no IIS 7.5.
IIS 7.0 O elemento <configHistory> foi introduzido no IIS 7.0.
IIS 6,0 O elemento <configHistory> substitui os atributos EnableHistory e MaxHistoryFiles do objeto de metabase IIsComputerSetting do IIS 6.0.

Instalação

O elemento <configHistory> está incluído na instalação padrão do IIS 7.

Instruções

Não há nenhuma interface do usuário para definir as opções de histórico de configuração do IIS 7. Para obter exemplos de como definir as opções de histórico de configuração programaticamente, consulte a seção Exemplos de Código deste documento.

Configuração

Atributos

Atributo Descrição
enabled Atributo booliano opcional.

Especifica se o histórico de configuração está habilitado.

O valor padrão é true.
path Atributo de cadeia de caracteres opcional.

Especifica o caminho para os arquivos de histórico de configuração.

O valor padrão é %SystemDrive%\inetpub\history.
maxHistories Atributo uint opcional.

Especifica o número máximo de arquivos de histórico a serem mantidos.

O valor padrão é 10.
period Atributo timeSpan opcional.

Especifica o intervalo que o IIS usa para verificar se há alterações de configuração.

O valor padrão é 00:02:00 (dois minutos).

Elementos filho

Nenhum.

Exemplo de configuração

O exemplo de configuração a seguir habilita o recurso de histórico de configuração, define o caminho dos arquivos de histórico como %SystemDrive%\inetpub\history, define o número máximo de arquivos de histórico como 50 e o intervalo de histórico como 5 minutos.

<system.applicationHost>
   <configHistory enabled="true"
      path="%SystemDrive%\inetpub\history"
      maxHistories="50"
      period="00:05:00" />
</system.applicationHost>

Exemplo de código

Os exemplos de código a seguir habilitam o histórico de configuração para o IIS 7 e configuram as seguintes opções: o caminho dos arquivos de histórico é definido como %SystemDrive%\inetpub\history, o número máximo de arquivos de histórico é definido como 50 e o intervalo de tempo para verificar as configurações é definido como 5 minutos.

AppCmd.exe

appcmd.exe set config -section:system.applicationHost/configHistory /enabled:"True" /commit:apphost
appcmd.exe set config -section:system.applicationHost/configHistory /path:"%SystemDrive%\inetpub\history" /commit:apphost
appcmd.exe set config -section:system.applicationHost/configHistory /maxHistories:"50" /commit:apphost
appcmd.exe set config -section:system.applicationHost/configHistory /period:"00:05: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 configHistorySection = config.GetSection("system.applicationHost/configHistory");
         configHistorySection["enabled"] = true;
         configHistorySection["path"] = @"%SystemDrive%\inetpub\history";
         configHistorySection["maxHistories"] = 50;
         configHistorySection["period"] = TimeSpan.Parse("00:05:00");

         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 configHistorySection As ConfigurationSection = config.GetSection("system.applicationHost/configHistory")
      configHistorySection("enabled") = True
      configHistorySection("path") = "%SystemDrive%\inetpub\history"
      configHistorySection("maxHistories") = 50
      configHistorySection("period") = TimeSpan.Parse("00:05:00")

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var configHistorySection = adminManager.GetAdminSection("system.applicationHost/configHistory", "MACHINE/WEBROOT/APPHOST");
configHistorySection.Properties.Item("enabled").Value = true;
configHistorySection.Properties.Item("path").Value = "%SystemDrive%\\inetpub\\history";
configHistorySection.Properties.Item("maxHistories").Value = 50;
configHistorySection.Properties.Item("period").Value = "00:05:00";

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set configHistorySection = adminManager.GetAdminSection("system.applicationHost/configHistory", "MACHINE/WEBROOT/APPHOST")
configHistorySection.Properties.Item("enabled").Value = True
configHistorySection.Properties.Item("path").Value = "%SystemDrive%\inetpub\history"
configHistorySection.Properties.Item("maxHistories").Value = 50
configHistorySection.Properties.Item("period").Value = "00:05:00"

adminManager.CommitChanges()