共用方式為


設定歷程記錄 < configHistory>

概觀

元素 <configHistory> 會定義內建 IIS 組態歷程記錄功能的設定,以保留組態檔變更的執行歷程記錄。 此歷程記錄特別適用于在手動編輯組態檔時從錯誤中復原。

例如,如果您在ApplicationHost.config檔案進行變更,且變更包含無效語法,則使用者流覽至您的網站時會看到下列錯誤:

HTTP 錯誤 503。 服務無法使用。

若要解決此問題,您只需要將ApplicationHost.config從歷程記錄資料夾複製到 %windir%\system32\inetsrv\config 資料夾,才能將伺服器還原至操作狀態。

注意

組態歷程記錄功能需要 應用程式主機說明服務 正在您的伺服器上執行;如果停止或停用此服務,您的組態檔變更將不會保留在歷程記錄資料夾中。

相容性

版本 備註
IIS 10.0 未在 IIS 10.0 中修改專案 <configHistory>
IIS 8.5 未在 IIS 8.5 中修改專案 <configHistory>
IIS 8.0 未在 IIS 8.0 中修改專案 <configHistory>
IIS 7.5 未在 IIS 7.5 中修改專案 <configHistory>
IIS 7.0 元素 <configHistory> 是在 IIS 7.0 中引進。
IIS 6.0 元素 <configHistory> 會取代 IIS 6.0 IIsComputerSetting Metabase 物件的EnableHistoryMaxHistoryFiles屬性。

安裝程式

元素 <configHistory> 包含在 IIS 7 的預設安裝中。

作法

沒有使用者介面可用來設定 IIS 7 的組態歷程記錄選項。 For examples of how to set the configuration history options programmatically, see the Code Samples section of this document.

組態

屬性

屬性 描述
enabled 選擇性的 Boolean 屬性。

指定是否啟用組態歷程記錄。

預設值是 true
path 選擇性字串屬性。

指定組態歷程記錄檔的路徑。

預設值是 %SystemDrive%\inetpub\history
maxHistories 選擇性 uint 屬性。

指定要保留的歷程記錄檔數目上限。

預設值是 10
period 選擇性的 timeSpan 屬性。

指定 IIS 用來檢查組態變更的間隔。

預設值 (00:02:00 兩分鐘) 。

子元素

無。

組態範例

下列設定範例會啟用組態歷程記錄功能、將歷程記錄檔的路徑設定為 %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

注意

當您使用 AppCmd.exe 來設定這些設定時,請務必將 認可 參數 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()