다음을 통해 공유


ASP.NET 구성 API 개요

업데이트: 2007년 11월

ASP.NET 구성 API를 사용하면 단일 프로그래밍 인터페이스를 통해 응용 프로그램 구성 데이터를 개발, 배포 및 관리할 수 있습니다. 구성 API를 사용하면 구성 파일에서 XML을 직접 편집하지 않고도 전체 ASP.NET 구성을 프로그래밍 방식으로 개발하고 수정할 수 있습니다. 또한 웹 기반 관리 도구와 MMC(Microsoft Management Console) 스냅인에서 개발하는 콘솔 응용 프로그램과 스크립트에도 구성 API를 사용할 수 있습니다. 다음 두 가지 구성 관리 도구는 구성 API를 사용하며 .NET Framework 버전 2.0에 포함되어 있습니다.

  • ASP.NET MMC 스냅인. 구성 API를 사용하여 관리 작업을 단순화하며 모든 수준의 구성 계층 구조에서 로컬 구성 데이터의 통합된 뷰를 제공합니다.

  • 웹 사이트 관리 도구. 호스팅되는 사이트를 포함하여 로컬 및 원격 응용 프로그램의 구성 설정을 관리할 수 있습니다.

ASP.NET 구성 API는 IIS(인터넷 정보 서비스) 프로그래밍 구성 API와 관련이 없습니다. 자세한 내용은 Using IIS Programmatic Administration을 참조하십시오.

구성 API 기능

ASP.NET 구성 API는 웹 사이트와 응용 프로그램을 프로그래밍 방식으로 구성할 수 있는 ASP.NET 관리 개체의 집합을 구성합니다. 관리 개체는 .NET Framework 클래스 라이브러리로 구현됩니다. 구성 API 프로그래밍 모델을 사용하면 컴파일 타임에 데이터 형식을 적용하여 코드 일관성과 안정성을 보장할 수 있습니다.

응용 프로그램 구성을 쉽게 관리할 수 있도록 구성 API를 사용하여 데이터를 여러 구성 파일에서 별도의 컬렉션으로 보는 대신 구성 계층 구조의 모든 지점에서 단일 컬렉션으로 병합된 데이터를 볼 수 있습니다. 또한 구성 API를 사용하면 구성 파일에서 직접 XML을 편집하지 않고도 전체 응용 프로그램 구성을 조작할 수 있습니다. 끝으로, API를 사용하면 웹 사이트 구성 도구와 같은 관리 도구가 지원되므로 구성 작업이 단순해집니다.

구성 API를 사용하면 한 대의 컴퓨터에서 구성 파일을 만들고 여러 컴퓨터에서 구성 스크립트를 실행하므로 배포 작업이 단순해집니다.

구성 API에서 IIS 응용 프로그램 만들기는 지원하지 않습니다. IIS의 관리 응용 프로그램 작성에 대한 자세한 내용은 IIS SDK의 Using System.DirectoryServices to Configure IIS를 참조하십시오.

로컬 및 원격 구성 설정 사용

Configuration 개체는 컴퓨터와 같은 특정 실제 엔터티 또는 응용 프로그램이나 웹 사이트 같은 논리 엔터티에 적용되는 구성 설정의 병합된 뷰를 나타냅니다. 지정된 논리 엔터티는 로컬 컴퓨터나 원격 서버에 있을 수 있습니다.

지정된 엔터티에 대한 구성 파일이 없으면 Configuration 개체는 Machine.config 파일로 정의된 기본 구성 설정을 나타냅니다.

다음 클래스에서 열린 구성 메서드 중 하나를 사용하여 Configuration 개체를 가져올 수 있습니다.

이러한 메서드는 Configuration 개체를 반환하며, 이 개체는 내부 구성 파일을 처리하는 데 필요한 메서드와 속성을 제공합니다. 이러한 파일에 읽거나 쓸 목적으로 액세스할 수 있습니다.

  • 읽기GetSection 또는 GetSectionGroup 메서드를 사용하여 구성 정보를 읽을 수 있습니다. 읽는 사용자나 프로세스는 계층 구조에 있는 모든 구성 파일에 대해 읽기 권한이 있어야 합니다.

    참고:

    path 매개 변수를 사용하는 정적 GetSection 메서드를 사용하는 경우 path 매개 변수는 코드에서 실행 중인 응용 프로그램을 참조해야 합니다. 그렇지 않으면 매개 변수가 무시되고 현재 실행 중인 응용 프로그램의 구성 정보가 반환됩니다.

  • 쓰기Save 메서드 중 하나를 사용하여 구성 정보를 쓸 수 있습니다. 쓰는 사용자나 프로세스는 현재 구성 계층 구조 수준의 구성 파일과 디렉터리에 대한 쓰기 권한과 함께 계층 구조에 있는 모든 구성 파일에 대한 읽기 권한도 있어야 합니다.

지정된 엔터티에 대한 상속된 구성 설정을 나타내는 구성 파일을 생성하려면 다음과 같은 저장 구성 메서드 중 하나를 사용합니다.

  • 새 구성 파일을 만드는 Save 메서드

  • 다른 위치에 새 구성 파일을 생성하는 SaveAs 메서드

참고:

원격 컴퓨터에서 구성 설정에 액세스할 수 있도록 하려면 Aspnet_regiis 명령줄 도구를 사용합니다. 이 도구에 대한 자세한 내용은 ASP.NET IIS 등록 도구(Aspnet_regiis.exe)를 참조하십시오. .NET Framework에 포함된 내장 섹션 이외의 사용자 지정 구성 설정을 만들거나 액세스하는 방법에 대한 자세한 내용은 ConfigurationSection을 참조하십시오.

코드 예제

ASP.NET 페이지 내에서 다음 코드를 사용하여 ASP.NET 페이지에서 실행되는 응용 프로그램에 대한 구성 정보를 가져올 수 있습니다. 이 코드 예제에서는 정적 WebConfigurationManager.GetSection 메서드를 사용합니다.

System.Web.Configuration.UrlMappingsSection urlMaps =
    (System.Web.Configuration.UrlMappingsSection)
    System.Web.Configuration.WebConfigurationManager.GetSection(
    "system.web/urlMappings");
Bool urlMappingsEnabled = urlMaps.IsEnabled;

ASP.NET 응용 프로그램이나 클라이언트 응용 프로그램에서 다음 코드를 사용하여 별도의 응용 프로그램에 대한 구성 정보를 가져올 수 있습니다. 이 코드 예제에서는 System.Configuration.Configuration 개체의 비정적 GetSection 메서드를 사용합니다.

System.Configuration.Configuration config =
    System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(
    "/SampleWebApp");
System.Web.Configuration.UrlMappingsSection urlMaps =
    (System.Web.Configuration.UrlMappingsSection)
    System.Web.Configuration.WebConfigurationManager.GetSection(
    "system.web/urlMappings");
bool urlMappingsEnabled = urlMaps.IsEnabled;

구성 클래스 및 네임스페이스

대부분의 구성 클래스와 메서드는 서로 비슷합니다. 다음 표에서는 가장 일반적으로 사용되는 클래스와 네임스페이스에 대해 설명합니다. 이러한 클래스와 네임스페이스를 사용하는 사용 시나리오와 코드 예제에 대한 자세한 내용은 구성 클래스 사용을 참조하십시오.

구성 클래스 또는 네임스페이스

설명

System.Configuration 네임스페이스

모든 .NET Framework 응용 프로그램에 대한 주 구성 클래스가 들어 있습니다. 여기에는 .NET Framework의 구성 파일 스키마에 정의된 .NET Framework 클라이언트 구성 섹션의 섹션 처리기 클래스가 포함됩니다. 섹션 처리기 클래스는 GetSectionGetSectionGroup과 같은 메서드의 섹션에 대한 구성 데이터를 가져오는 데 사용됩니다. 이 두 메서드는 비정적 메서드입니다. 자세한 내용은 이 항목의 앞부분에 나오는 로컬 및 원격 구성 설정 사용 단원을 참조하십시오.

ASP.NET 섹션 처리기 클래스는 System.Web.Configuration 네임스페이스에 들어 있습니다.

System.Configuration.Configuration 클래스

컴퓨터, 응용 프로그램, 웹 디렉터리 또는 기타 리소스에 대한 구성 데이터 집합을 나타냅니다. 계층 구조에 들어 있는 병합된 구성 설정에 해당하는 Configuration 클래스의 인스턴스입니다.

이 클래스에는 구성 설정을 업데이트하고 섹션 및 섹션 그룹에 대한 참조를 가져오기 위한 GetSectionGetSectionGroup과 같은 유용한 메서드가 들어 있습니다. 이 두 메서드는 비정적 메서드입니다. 자세한 내용은 이 항목의 앞부분에 나오는 로컬 및 원격 구성 설정 사용 단원을 참조하십시오.

이 클래스는 WebConfigurationManagerConfigurationManager 클래스의 메서드와 같은 디자인 타임 구성 데이터를 가져오는 메서드의 반환 형식으로 사용됩니다.

System.Web.Configuration 네임스페이스

ASP.NET 구성 설정에 정의된 ASP.NET 구성 섹션의 섹션 처리기 클래스가 들어 있습니다. 섹션 처리기 클래스는 GetSectionGetSectionGroup과 같은 메서드의 섹션에 대한 구성 데이터를 가져오는 데 사용됩니다. 이 두 메서드는 정적 메서드입니다. 자세한 내용은 이 항목의 앞부분에 나오는 로컬 및 원격 구성 설정 사용 단원을 참조하십시오.

System.Web.Configuration.WebConfigurationManager 클래스

런타임 및 디자인 타임 구성 설정에 대한 참조를 가져올 때 유용하게 사용할 수 있는 메서드를 제공합니다. 이 메서드는 System.Configuration.Configuration 클래스를 반환 형식으로 사용합니다. 이 클래스의 정적 GetSection 메서드 또는 System.Configuration.ConfigurationManager 클래스의 비정적 GetSection 메서드를 교대로 사용할 수 있습니다. 자세한 내용은 이 항목의 앞부분에 나오는 로컬 및 원격 구성 설정 사용 단원을 참조하십시오.

웹 응용 프로그램 구성의 경우에는 System.Web.Configuration.WebConfigurationManager 클래스를 사용하고 System.Configuration.ConfigurationManager 클래스는 사용하지 않는 것이 좋습니다.

System.Configuration.Provider 네임스페이스

구성 공급자를 사용자 지정하고 확장하는 방법을 제공하며 구성 시스템의 모든 공급자 클래스에 대한 기본 클래스입니다.

System.Web.Management 네임스페이스

웹 응용 프로그램의 상태를 관리 및 모니터링하는 클래스와 인터페이스를 포함합니다. 엄밀히 말하자면 이 네임스페이스는 구성 API의 일부로 간주되지 않습니다. 예를 들어, 추적 및 이벤트 발생은 이 네임스페이스의 클래스에 의해 수행됩니다. 자세한 내용은 ASP.NET 문제 해결 및 디버깅을 참조하십시오.

System.Management.Instrumentation 네임스페이스

응용 프로그램을 계측하여 WMI(Windows Management Instrumentation)를 통해 해당 응용 프로그램의 관리 정보와 이벤트를 잠재 소비자에게 노출시키는 데 필요한 클래스를 제공합니다. ASP.NET 상태 모니터링은 WMI를 사용하여 이벤트를 전달합니다. 엄밀히 말하자면 이 네임스페이스는 구성 API의 일부로 간주되지 않습니다.

구성 클래스 상속 구조

다음 다이어그램에서는 System.Web.Configuration 네임스페이스의 클래스와 System.Configuration 네임스페이스의 클래스 간 상속 관계를 보여 줍니다. 이 다이어그램을 사용하면 현재 인스턴스화된 개체에 사용할 수 있는 속성과 메서드 및 자세한 정보를 가져오는 방법을 알 수 있습니다.

구성 클래스 집계 구조

다음 다이어그램에서는 System.Web.Configuration 네임스페이스의 클래스와 System.Configuration 네임스페이스의 클래스 간 집계 관계를 보여 줍니다. 이 다이어그램을 사용하면 다른 클래스 내에서 개체로 인스턴스화된 클래스를 알 수 있습니다.

특수화된 도구 빌드

대부분의 관리자가 특정 웹 사이트 및 응용 프로그램과 같은 할당된 리소스를 관리할 수 있게 하면서 동시에 해당 관리자가 다른 리소스에 대해 할 수 있는 작업을 제한해야 할 경우가 있습니다. ASP.NET 구성 API를 사용하는 관리 도구를 개발하여 관리자가 작업하는 데 필요한 구성 설정만 노출하고 다른 설정에 대한 액세스는 거부할 수 있습니다. 따라서 관리자의 능력이 강화되고, 구성 파일에는 직접 액세스할 필요가 없게 되므로 리소스가 보호됩니다.

다중 서버용 도구

여러 서버를 관리하는 경우 각 서버에 동일한 ASP.NET 응용 프로그램을 배포하거나 관리해야 하는 경우가 있습니다. 예를 들어, 웹 팜을 관리할 때 다음과 같은 작업을 수행해야 할 수 있습니다.

  • 웹 팜의 모든 서버 또는 임의의 서버에 동일한 ASP.NET 응용 프로그램을 구성하는 스크립트 작성

  • 응용 프로그램의 각 인스턴스에 사용되는 파일 중 일부를 잠금

  • 배포된 응용 프로그램의 구성을 기록하는 감사를 자동화하여 각 컴퓨터에 설치된 프로그램이 동일한 방식으로 구성되었는지 확인

  • 구성의 변경 내용을 편집한 다음 응용 프로그램이 설치되는 위치에 관계없이 응용 프로그램의 모든 인스턴스에 변경 내용 적용

또한 ASP.NET 구성 API는 여러 서버 간 일괄 실행을 지원합니다.

하나의 도구로 구성 만들기 및 관리

사이트 소유자는 ASP.NET MMC 스냅인을 사용하여 한 대의 컴퓨터에서 ASP.NET 응용 프로그램의 구성을 만들고 관리할 수 있습니다. ASP.NET MMC 스냅인은 그래픽 사용자 인터페이스를 통해 ASP.NET 구성 API의 기능을 노출하며 세션, 보안, 오류 및 추적과 같은 여러 구성 파일의 구성 설정에 대한 통합된 뷰를 제공합니다. 구성 파일에서 직접 XML을 편집하지 않고도 설정을 변경할 수 있습니다. 자세한 내용은 ASP.NET MMC 스냅인을 참조하십시오.

참고 항목

작업

방법: 프로그래밍 방식으로 ASP.NET 구성 설정 사용

방법: Web.config 파일에서 응용 프로그램 설정 읽기

방법: Web.config 파일에서 연결 문자열 읽기

개념

구성 클래스 사용

기타 리소스

ASP.NET 구성 API