Partager via


Configuration History <configHistory>

Vue d’ensemble

L’élément <configHistory> définit les paramètres de la fonctionnalité d’historique de configuration IIS intégrée, qui conserve un historique continu des modifications apportées à vos fichiers de configuration. Cet historique est particulièrement utile pour récupérer des erreurs commises lors de la modification manuelle de vos fichiers de configuration.

Par exemple, si vous apportez des modifications à votre fichier ApplicationHost.config et que les modifications contiennent une syntaxe non valide, les utilisateurs finaux verront l’erreur suivante en naviguant sur votre site web :

Erreur HTTP 503. Le service n’est pas disponible.

Pour résoudre le problème, il vous faut juste copier ApplicationHost.config à partir du dossier d’historique dans votre dossier %windir%\system32\inetsrv\config afin de restaurer votre serveur à un état opérationnel.

Remarque

La fonctionnalité d’historique de configuration nécessite que le service d’aide de l’hôte d’application soit en cours d’exécution sur votre serveur. Si ce service est arrêté ou désactivé, les modifications apportées à vos fichiers de configuration ne sont pas conservées dans le dossier d’historique.

Compatibilité

Version Notes
IIS 10.0 L’élément <configHistory> n’a fait l’objet d’aucune modification dans IIS 10.0.
IIS 8.5 L’élément <configHistory> n’a fait l’objet d’aucune modification dans IIS 8.5.
IIS 8.0 L’élément <configHistory> n’a fait l’objet d’aucune modification dans IIS 8.0.
IIS 7.5 L’élément <configHistory> n’a fait l’objet d’aucune modification dans IIS 7.5.
IIS 7.0 L’élément <configHistory> a été introduit dans IIS 7.0.
IIS 6.0 L’élément <configHistory> remplace les attributs EnableHistory et MaxHistoryFiles de l’objet métabase IIsComputerSetting IIS 6.0.

Programme d’installation

L’élément <configHistory> est inclus dans l’installation par défaut d’IIS 7.

Procédure

Il n’existe aucune interface utilisateur pour définir les options d’historique de configuration pour IIS 7. Pour obtenir des exemples de définition des options d’historique de configuration par programmation, consultez la section Exemples de code de ce document.

Configuration

Attributs

Attribut Description
enabled Attribut booléen facultatif.

Spécifie si l’historique de configuration est activé.

La valeur par défaut est true.
path Attribut de chaîne facultatif.

Spécifie le chemin d’accès aux fichiers d’historique de configuration.

La valeur par défaut est %SystemDrive%\inetpub\history.
maxHistories Attribut uint facultatif.

Spécifie le nombre maximal de fichiers d’historique à conserver.

La valeur par défaut est 10.
period Attribut timeSpan facultatif.

Spécifie l’intervalle auquel IIS vérifie les modifications de configuration.

La valeur par défaut est 00:02:00 (deux minutes).

Éléments enfants

Aucune.

Exemple Configuration

L’exemple de configuration suivant active la fonctionnalité d’historique de configuration, définit le chemin des fichiers d’historique sur %SystemDrive%\inetpub\history, définit le nombre maximal de fichiers d’historique sur 50 et définit l’intervalle d’historique sur 5 minutes.

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

Exemple de code

Les exemples de code suivants activent l’historique de configuration pour IIS 7 et configurent les options suivantes : le chemin des fichiers d’historique est défini sur %SystemDrive%\inetpub\history, le nombre maximal de fichiers d’historique est défini sur 50 et l’intervalle de temps auquel vérifier les paramètres de configuration est défini sur 5 minutes.

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

Remarque

Vous devez veiller à définir le paramètre commit sur apphost quand vous utilisez AppCmd.exe pour configurer ces paramètres. Cela valide les paramètres de configuration dans la section d’emplacement appropriée dans le fichier 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()