Configurazione della cronologia <di configurazioneHistory>
Panoramica
L'elemento <configHistory>
definisce le impostazioni per la funzionalità di cronologia della configurazione IIS predefinita, che mantiene una cronologia di esecuzione delle modifiche apportate ai file di configurazione. Questa cronologia è particolarmente utile per il ripristino da errori eseguiti durante la modifica manuale dei file di configurazione.
Ad esempio, se si apportano modifiche al file di ApplicationHost.config e le modifiche contengono sintassi non valida, gli utenti finali visualizzerebbero l'errore seguente durante l'esplorazione del sito Web:
Errore HTTP 503. Il servizio non è disponibile.
Per risolvere il problema, è sufficiente copiare il ApplicationHost.config dalla cartella di cronologia nella cartella %windir%\system32\inetsrv\config per ripristinare lo stato operativo del server.
Nota
La funzionalità di cronologia della configurazione richiede che il servizio guida host dell'applicazione sia in esecuzione nel server; se il servizio viene arrestato o disabilitato, le modifiche apportate ai file di configurazione non verranno mantenute nella cartella della cronologia.
Compatibilità
Versione | Note |
---|---|
IIS 10.0 | L'elemento <configHistory> non è stato modificato in IIS 10.0. |
IIS 8,5 | L'elemento <configHistory> non è stato modificato in IIS 8.5. |
IIS 8,0 | L'elemento <configHistory> non è stato modificato in IIS 8.0. |
IIS 7,5 | L'elemento <configHistory> non è stato modificato in IIS 7.5. |
IIS 7.0 | L'elemento <configHistory> è stato introdotto in IIS 7.0. |
IIS 6.0 | L'elemento <configHistory> sostituisce gli attributi EnableHistory e MaxHistoryFiles dell'oggetto metabase IIS 6.0 IIsComputerSetting . |
Installazione
L'elemento <configHistory>
è incluso nell'installazione predefinita di IIS 7.
Procedure
Non è disponibile alcuna interfaccia utente per l'impostazione delle opzioni di cronologia di configurazione per IIS 7. Per esempi di come impostare le opzioni della cronologia di configurazione a livello di codice, vedere la sezione Esempi di codice di questo documento.
Configurazione
Attributi
Attributo | Descrizione |
---|---|
enabled |
Attributo booleano facoltativo. Specifica se la cronologia della configurazione è abilitata. Il valore predefinito è true . |
path |
Attributo stringa facoltativo. Specifica il percorso dei file della cronologia di configurazione. Il valore predefinito è %SystemDrive%\inetpub\history . |
maxHistories |
Attributo uint facoltativo. Specifica il numero massimo di file di cronologia da conservare. Il valore predefinito è 10 . |
period |
Attributo timeSpan facoltativo. Specifica l'intervallo utilizzato da IIS per verificare la presenza di modifiche alla configurazione. Il valore predefinito è 00:02:00 (due minuti). |
Elementi figlio
Nessuno.
Esempio di configurazione
L'esempio di configurazione seguente abilita la funzionalità di cronologia della configurazione, imposta il percorso dei file di cronologia su %SystemDrive%\inetpub\history, imposta il numero massimo di file di cronologia su 50 e imposta l'intervallo di cronologia su 5 minuti.
<system.applicationHost>
<configHistory enabled="true"
path="%SystemDrive%\inetpub\history"
maxHistories="50"
period="00:05:00" />
</system.applicationHost>
Codice di esempio
Gli esempi di codice seguenti abilitano la cronologia di configurazione per IIS 7 e configurano le opzioni seguenti: il percorso dei file di cronologia è impostato su %SystemDrive%\inetpub\history, il numero massimo di file di cronologia è impostato su 50 e l'intervallo di tempo per controllare le impostazioni di configurazione è impostato su 5 minuti.
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
È necessario assicurarsi di impostare il parametro commit su apphost
quando si usa AppCmd.exe per configurare queste impostazioni. In questo modo le impostazioni di configurazione vengono confermate nella sezione relativa al percorso appropriato nel file 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()