구성 기록 <구성History>
개요
요소는 <configHistory>
기본 제공 IIS 구성 기록 기능에 대한 설정을 정의하여 구성 파일에 대한 변경 내용의 실행 기록을 유지합니다. 이 기록은 구성 파일을 수동으로 편집할 때 발생한 실수로부터 복구하는 데 특히 유용합니다.
예를 들어 ApplicationHost.config 파일을 변경하고 변경 내용에 잘못된 구문이 포함된 경우 웹 사이트로 검색할 때 최종 사용자에게 다음 오류가 표시됩니다.
HTTP 오류 503. 서비스를 사용할 수 없습니다.
이 문제를 resolve 서버를 작동 상태로 복원하려면 기록 폴더의 ApplicationHost.config %windir%\system32\inetsrv\config 폴더로 복사하기만 하면 됩니다.
참고
구성 기록 기능을 사용하려면 애플리케이션 호스트 도움말 서비스가 서버에서 실행되고 있어야 합니다. 이 서비스를 중지하거나 사용하지 않도록 설정하면 구성 파일의 변경 내용이 기록 폴더에 유지되지 않습니다.
호환성
버전 | 참고 |
---|---|
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 메타베이스 개체의 EnableHistory 및 MaxHistoryFiles 특성을 대체합니다. |
설치 프로그램
요소는 <configHistory>
IIS 7의 기본 설치에 포함됩니다.
방법
IIS 7에 대한 구성 기록 옵션을 설정하기 위한 사용자 인터페이스가 없습니다. 구성 기록 옵션을 프로그래밍 방식으로 설정하는 방법에 대한 예제는 이 문서의 코드 샘플 섹션을 참조하세요.
구성
특성
attribute | Description |
---|---|
enabled |
선택적 부울 특성입니다. 구성 기록을 사용할 수 있는지 여부를 지정합니다. 기본값은 true 입니다. |
path |
선택적 문자열 특성입니다. 구성 기록 파일의 경로를 지정합니다. 기본값은 %SystemDrive%\inetpub\history 입니다. |
maxHistories |
선택적 uint 특성입니다. 유지할 최대 기록 파일 수를 지정합니다. 기본값은 10 입니다. |
period |
선택적 timeSpan 특성입니다. IIS가 구성 변경에 검사 데 사용하는 간격을 지정합니다. 기본값은 (2분)입니다 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 사용하여 이러한 설정을 구성할 때 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()