設定歷程記錄 < 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 物件的EnableHistory和MaxHistoryFiles屬性。 |
安裝程式
元素 <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()