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