다음을 통해 공유


구성 기록 <구성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 메타베이스 개체의 EnableHistoryMaxHistoryFiles 특성을 대체합니다.

설치 프로그램

요소는 <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()