Compartir a través de


Historial de configuración <configHistory>

Información general

El elemento <configHistory> define los valores de la característica integrada del historial de configuración de IIS, que mantiene un historial de cambios en ejecución en los archivos de configuración. Este historial es especialmente útil para recuperarse de errores cometidos al editar manualmente los archivos de configuración.

Por ejemplo, si ha realizado cambios en el archivo ApplicationHost.config y los cambios contenían sintaxis no válida, los usuarios finales verían el siguiente error al navegar al sitio web:

HTTP Error 503. El servicio no está disponible.

Para resolver el problema, solo tendría que copiar ApplicationHost.config desde la carpeta del historial a la carpeta %windir%\system32\inetsrv\config para restaurar el servidor al estado operativo.

Nota:

Para la característica de historial de configuración, es necesario que el servicio de ayuda del host de aplicaciones se ejecute en el servidor; si este servicio se detiene o deshabilita, los cambios en los archivos de configuración no se conservarán en la carpeta del historial.

Compatibilidad

Versión Notas
IIS 10.0 El elemento <configHistory> no se ha modificado en IIS 10.0.
IIS 8.5 El elemento <configHistory> no se ha modificado en IIS 8.5.
IIS 8.0 El elemento <configHistory> no se ha modificado en IIS 8.0.
IIS 7.5 El elemento <configHistory> no se ha modificado en IIS 7.5.
IIS 7.0 El elemento <configHistory> se introdujo en IIS 7.0.
IIS 6,0 El elemento <configHistory> reemplaza los atributos EnableHistory y MaxHistoryFiles de el objeto de metabase IIsComputerSetting de IIS 6.0.

Configuración

El elemento <configHistory> se incluye en la instalación predeterminada de IIS 7.

Procedimientos

No hay ninguna interfaz de usuario para establecer las opciones del historial de configuración para IIS 7. Para obtener ejemplos de cómo establecer las opciones del historial de configuración mediante programación, vea la sección Ejemplos de código de este documento.

Configuración

Atributos

Atributo Descripción
enabled Atributo Boolean opcional.

Especifica si el historial de configuración está habilitado.

El valor predeterminado es true.
path Atributo de cadena opcional.

Especifica la ruta de acceso a los archivos del historial de configuración.

El valor predeterminado es %SystemDrive%\inetpub\history.
maxHistories Atributo uint opcional.

Especifica el número máximo de archivos de historial que se van a copiar.

El valor predeterminado es 10.
period Atributo timeSpan opcional.

Especifica el intervalo que IIS usa para comprobar si hay cambios de configuración.

El valor predeterminado es 00:02:00 (dos minutos).

Elementos secundarios

Ninguno.

Ejemplo de configuración

En el ejemplo de configuración siguiente se habilita la característica de historial de configuración, se establece la ruta de acceso de los archivos de historial en %SystemDrive%\inetpub\history, se establece el número máximo de archivos de historial en 50 y el intervalo de historial en 5 minutos.

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

Código de ejemplo

En los ejemplos de código siguientes se habilita el historial de configuración para IIS 7 y se configuran las siguientes opciones: la ruta de acceso de los archivos de historial se establece en %SystemDrive%\inetpub\history, el número máximo de archivos de historial se establece en 50 y el intervalo de tiempo para comprobar los valores de configuración se establece en 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

Nota:

Debe asegurarse de establecer el parámetrocommit en apphost cuando use AppCmd.exe para configurar estos valores. 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 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()