ASP.NET 구성 파일 구조(섹션 및 섹션 처리기)

업데이트: 2007년 11월

모든 ASP.NET 구성 정보는 Web.config 파일의 configuration 요소 내에 있습니다. 이 요소 내의 구성 정보는 두 가지 주요 영역, 즉 구성 섹션 처리기 선언 영역과 구성 섹션 설정 영역으로 그룹화됩니다.

구성 섹션 처리기 선언

구성 섹션 처리기 선언 영역은 Web.config 파일의 configSections 요소 내에 있습니다. 여기에는 섹션 처리기가 선언되는 ASP.NET 구성 section 요소가 포함됩니다. 이 구성 섹션 처리기 선언을 sectionGroup 요소에 중첩시키면 구성 정보를 구성하는 데 도움이 됩니다. 일반적으로 sectionGroup 요소는 구성 설정이 적용될 네임스페이스를 나타냅니다. 예를 들어, 모든 ASP.NET 구성 섹션 처리기는 다음 코드 예제와 같이 system.web 섹션 그룹으로 그룹화됩니다.

    <sectionGroup name="system.web"
      type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
      <!-- <section /> elements. -->
    </sectionGroup>

구성 섹션 설정 영역의 각 구성 섹션에 대해 섹션 처리기 선언이 하나씩 있습니다. 섹션 처리기는 ConfigurationSection 인터페이스를 구현하는 .NET Framework 클래스입니다. 섹션 처리기 선언에는 구성 설정 섹션의 이름(예: pages)과 해당 섹션의 구성 데이터를 처리하는 섹션 처리기 클래스의 이름(예: System.Web.Configuration.PagesSection)이 포함됩니다. 다음 코드 예제를 참조하십시오.

      <section name="pages"
        type="System.Web.Configuration.PagesSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
      </section>

구성 섹션 처리기는 한 번만 선언하면 됩니다. 기본 ASP.NET 구성 섹션의 섹션 처리기는 기본 Machine.config 파일에 이미 선언되어 있습니다. ASP.NET 응용 프로그램의 루트 Web.config 파일과 다른 구성 파일은 Machine.config 파일에 선언된 구성 처리기를 자동으로 상속합니다. 사용자 지정 설정 섹션을 처리하는 사용자 지정 섹션 처리기 클래스를 만드는 경우에만 새 섹션 처리기를 선언해야 합니다.

미리 정의된 ASP.NET 구성 설정 섹션은 ASP.NET 구성 설정에 나와 있습니다. 사용자 고유의 사용자 지정 설정 섹션을 정의하고 이를 관리할 구성 섹션 처리기를 개발하는 방법에 대한 자세한 내용은 사용자 지정 섹션 처리기를 만드는 데 사용되는 클래스방법: ConfigurationSection을 사용하여 사용자 지정 구성 섹션 만들기를 참조하십시오.

구성 섹션 설정

구성 섹션 설정 영역은 구성 섹션 처리기 선언 영역 뒤에 오며, 실제 구성 설정을 포함합니다.

기본적으로 configSections 영역에 있는 모든 section 및 sectionGroup 요소에 대해 내부적으로 또는 루트 구성 파일 중 하나에 구성 섹션 요소가 하나씩 지정됩니다. 이러한 기본값은 systemroot\Microsoft.NET\Framework\versionNumber\CONFIG\Machine.config.comments 파일에서 볼 수 있습니다.

구성 섹션 요소에는 부모와 같은 섹션 처리기에서 처리되는 자식 요소도 포함될 수 있습니다. 예를 들어, 다음 pages 요소는 pages 섹션 처리기에서 처리되기 때문에 해당되는 섹션 처리기가 없는 namespaces 요소를 포함하고 있습니다.

  <pages
    buffer="true"
    enableSessionState="true"
    asyncTimeout="45"
  <!-- Other attributes. -->
  >
    <namespaces>
      <add namespace="System" />
      <add namespace="System.Collections" />
    </namespaces>
  </pages>

Web.config 파일에서의 예제

다음 코드 예제에서는 이전 코드 예제가 Web.config 파일에서 어느 위치에 포함되는지 보여 줍니다. pages 요소의 namespaces 요소에는 구성 섹션 처리기 선언이 없습니다. 이는 System.Web.Configuration.PagesSection 섹션 처리기에서 pages 설정 섹션의 모든 자식 요소를 처리하기 때문입니다.

<?xml version="1.0" encoding="us-ascii"?>
<configuration>

<!-- Configuration section-handler declaration area. -->
  <configSections>
    <sectionGroup name="system.web"
      type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
      <section
        name="pages" 
        type="System.Web.Configuration.PagesSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
      />
      <!-- Other <section /> elements. -->
    </sectionGroup>
    <!-- Other <sectionGroup /> and <section /> elements. -->
  </configSections>

<!-- Configuration section settings area. -->
  <pages
    buffer="true"
    enableSessionState="true"
    asyncTimeout="45"
  <!-- Other attributes. -->
  >
    <namespaces>
      <add namespace="System" />
      <add namespace="System.Collections" />
    </namespaces>
  </pages>
  <!-- Other section settings elements. -->

</configuration>

편집 문제

구성 섹션의 요소는 반드시 제대로 구성된 XML이어야 하기 때문에 요소 및 특성은 대/소문자를 구분합니다. 구성 설정을 편집하는 방법에는 여러 가지가 있습니다. 자세한 내용은 ASP.NET 구성 파일 편집을 참조하십시오.

ASP.NET 구성 파일에서 사용자 지정 섹션 요소를 사용하려면 먼저 사용자 지정 구성 섹션 처리기를 프로그래밍 방식으로 만들어야 합니다. 자세한 내용은 방법: ConfigurationSection을 사용하여 사용자 지정 구성 섹션 만들기를 참조하십시오.

구성 파일의 Path 특성

웹 응용 프로그램 경로를 참조할 때 Web.config 파일의 path 특성은 응용 프로그램 루트를 나타내는 "~/" 바로 가기로 시작할 수 있습니다. 자세한 내용은 ASP.NET 웹 사이트 경로를 참조하십시오.

참고 항목

작업

방법: ConfigurationSection을 사용하여 사용자 지정 구성 섹션 만들기

방법: IConfigurationSectionHandler를 사용하여 사용자 지정 구성 섹션 만들기

기타 리소스

ASP.NET 웹 사이트 관리

ASP.NET 구성 설정

응용 프로그램 구성