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