次の方法で共有


構成履歴 <configHistory>

概要

<configHistory> 要素では、組み込みの IIS 構成履歴機能の設定を定義します。これによって構成ファイルに対する変更の実行履歴が保持されます。 この履歴は、構成ファイルを手動で編集するときの間違いからの回復に特に役立ちます。

たとえば、ApplicationHost.config ファイルに変更を加え、その変更に無効な構文が含まれている場合、Web サイトを参照すると、エンド ユーザーに次のエラーが表示されます。

HTTP エラー 503。 サービスを利用できません。

この問題を解決するには、サーバーを操作状態に復元するために、ApplicationHost.config を履歴フォルダーから %windir%\system32\inetsrv\config フォルダーにコピーするだけで済みます。

Note

構成履歴機能では、アプリケーション ホスト ヘルプ サービスがサーバー上で実行されている必要があります。このサービスが停止または無効になっている場合、構成ファイルの変更は履歴フォルダーに保持されません。

互換性

バージョン メモ
IIS 10.0 <configHistory> 要素は、IIS 10.0 では変更されませんでした。
IIS 8.5 <configHistory> 要素は、IIS 8.5 では変更されませんでした。
IIS 8.0 <configHistory> 要素は IIS 8.0 では変更されませんでした。
IIS 7.5 <configHistory> 要素は、IIS 7.5 では変更されませんでした。
IIS 7.0 <configHistory> 要素が IIS 7.0 で導入されました。
IIS 6.0 <configHistory> 要素は、IIS 6.0 IIsComputerSetting メタベース オブジェクトの EnableHistoryMaxHistoryFiles 属性を置き換えます。

段取り

<configHistory> 要素は IIS 7 の既定のインストールに含まれています。

操作方法

IIS 7 の構成履歴オプションを設定するためのユーザー インターフェイスはありません。 構成履歴オプションをプログラムで設定する方法の例については、このドキュメントの「コード サンプル」セクションを参照してください。

構成

属性

属性 説明
enabled 省略可能な Boolean 属性です。

構成履歴を有効にするかどうかを指定します。

既定値は true です。
path 省略可能な文字列属性。

構成履歴ファイルへのパスを指定します。

既定値は %SystemDrive%\inetpub\history です。
maxHistories 省略可能な uint 属性。

保持する履歴ファイルの最大数を指定します。

既定値は 10 です。
period 省略可能な timeSpan 属性。

構成変更を確認するために IIS で使用される間隔を指定します。

既定値は 00:02:00 (2 分) です。

子要素

なし。

構成サンプル

次の構成サンプルでは、構成履歴機能を有効にし、履歴ファイルのパスを %SystemDrive%\inetpub\history に設定し、履歴ファイルの最大数を 50 に設定し、履歴間隔を 5 分に設定します。

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

サンプル コード

次のコード サンプルでは、IIS 7 の構成履歴を有効にし、次のオプションを構成します。履歴ファイルのパスは %SystemDrive%\inetpub\history に設定され、履歴ファイルの最大数は 50 に設定され、構成設定を確認するための時間間隔は 5 分に設定されます。

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

Note

AppCmd.exe を使用してこれらの設定を構成するときは、commit パラメーターを必ず apphost に設定する必要があります。 これで、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()