Condividi tramite


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