ASP.NET 구성 개요
업데이트: 2007년 11월
ASP.NET 구성 시스템의 기능을 사용하면 전체 서버의 모든 ASP.NET 응용 프로그램, 단일 ASP.NET 응용 프로그램 또는 개별 페이지나 응용 프로그램 하위 디렉터리를 구성할 수 있습니다. 인증 모드, 페이지 캐싱, 컴파일러 옵션, 사용자 지정 오류, 디버그 및 추적 옵션 등의 기능을 구성할 수 있습니다.
다음 단원에서는 ASP.NET 구성 시스템의 기능에 대해 설명합니다.
.NET Framework 클라이언트 응용 프로그램 구성에 대한 자세한 내용은 응용 프로그램 구성을 참조하십시오.
참고: |
---|
ASP.NET 구성 시스템의 기능은 ASP.NET 리소스에만 적용됩니다. 예를 들어, 정적 파일이나 ASP(기본) 파일 리소스가 ASP.NET 파일 확장명으로 매핑된 경우를 제외하고 폼 인증은 정적 파일이나 ASP(기본) 파일이 아닌 ASP.NET 파일에만 액세스하도록 제한됩니다. ASP.NET 리소스 이외의 리소스는 IIS(인터넷 정보 서비스)의 구성 기능을 사용하여 구성합니다. 자세한 내용은 Working with the IIS Metabase 및 IIS Metabase Property Reference를 참조하십시오. |
구성 파일
ASP.NET 구성 데이터는 각각 Web.config로 명명된 XML 텍스트 파일에 저장됩니다. Web.config 파일은 ASP.NET 응용 프로그램의 여러 디렉터리에 있을 수 있습니다. 이 파일을 사용하면 응용 프로그램을 서버에 배포하기 전이나 배포하는 동안 또는 배포한 후에 구성 데이터를 쉽게 편집할 수 있습니다. 표준 텍스트 편집기, ASP.NET MMC 스냅인, 웹 사이트 관리 도구 또는 ASP.NET 구성 API를 사용하여 ASP.NET 구성 파일을 만들거나 편집할 수 있습니다.
ASP.NET 구성 파일은 응용 프로그램 구성 설정을 응용 프로그램 코드와 별도로 유지합니다. 구성 데이터를 코드와 별도로 유지하면 설정을 응용 프로그램과 연결하거나 응용 프로그램 배포 후 필요에 따라 설정을 변경하거나 구성 스키마를 확장하는 등의 작업을 쉽게 할 수 있습니다.
ASP.NET 구성 파일의 데이터를 구성하는 방법에 대한 자세한 내용은 ASP.NET 구성 파일을 참조하십시오. 사용 가능한 구성 설정은 ASP.NET 구성 설정에 설명되어 있습니다.
구성 파일 계층 구조 및 상속
각 Web.config 파일은 구성 설정을 이 파일이 있는 디렉터리와 그 아래에 있는 모든 자식 디렉터리에 적용합니다. 자식 디렉터리의 설정에 따라 부모 디렉터리에 지정된 설정이 재정의되거나 수정될 수도 있습니다. location 요소에 경로를 지정하여 Web.config 파일의 구성 설정을 필요에 따라 개별 파일이나 하위 디렉터리에 적용할 수 있습니다.
ASP.NET 구성 계층 구조의 루트는 systemroot\Microsoft.NET\Framework\versionNumber\CONFIG\Web.config 파일이며, 이 파일에는 특정 버전의 Microsoft .NET Framework를 실행하는 모든 ASP.NET 응용 프로그램에 적용되는 설정이 포함되어 있습니다. 각 ASP.NET 응용 프로그램은 루트 Web.config 파일에서 기본 구성 설정을 상속하기 때문에 기본 설정을 재정의하는 설정에 대해서만 Web.config 파일을 만들어야 합니다.
참고: |
---|
루트 Web.config 파일은 동일한 디렉터리에 있는 Machine.config 파일에서 일부 기본 구성 설정을 상속합니다. 이 설정 중 일부는 Web.config 파일에서 재정의될 수 없습니다. 자세한 내용은 ASP.NET 구성 파일 계층 구조 및 상속을 참조하십시오. |
ASP.NET은 런타임에 Web.config 파일을 사용하여 들어오는 URL 요청 각각에 대한 구성 설정의 고유 컬렉션을 계산합니다. 이 설정은 한 번만 계산된 다음 서버에서 캐시됩니다. ASP.NET은 구성 파일의 변경 내용을 감지한 다음 영향을 받는 응용 프로그램에 해당 변경 내용을 자동으로 적용하며 이때 대부분의 경우 응용 프로그램이 다시 시작됩니다. 계층적 구성 설정은 해당 계층의 구성 파일이 변경될 때마다 자동으로 계산되어 다시 캐시됩니다. processModel 섹션이 변경되지 않은 경우에는 변경 내용 적용을 위해 IIS 서버를 다시 시작할 필요가 없습니다.
ASP.NET 구성 계층 구조의 작동 방식에 대한 자세한 내용은 ASP.NET 구성 파일 계층 구조 및 상속 및 ASP.NET 구성 시나리오를 참조하십시오.
구성 파일 직접 편집
텍스트 편집기나 XML 편집기를 사용하여 구성 파일을 직접 편집할 수 있습니다. 올바른 구문을 보려면 ASP.NET 구성 설정 및 일반 구성 설정(ASP.NET)의 구성 섹션에 있는 참조 항목을 참조하십시오. 자세한 내용은 ASP.NET 구성 파일 편집을 참조하십시오.
ASP.NET 3.5 Web.config 파일의 추가 구성 요소
.NET Framework 버전 3.5를 대상으로 하는 ASP.NET 응용 프로그램의 Web.config 파일에는 이전 버전의 Web.config 파일에는 없는 구성 요소가 있습니다. 이러한 확장된 Web.config 파일은 기존 웹 사이트를 열어 .NET Framework 버전 3.5를 대상으로 하도록 업그레이드하는 경우에도 만들어집니다. 이 경우 Visual Studio에서 추가 구성 요소가 포함되도록 응용 프로그램의 Web.config 파일을 업데이트합니다.
다음 표에는 새로운 구성 요소와 이전 버전의 .NET Framework의 구성 요소에서 변경된 내용을 보여 줍니다.
구성 요소 |
버전 3.5에서 변경된 내용 |
---|---|
system.codedom |
(새 섹션) .NET Framework CodeDOM(코드 문서 개체 모델)이 런타임에 소스 코드를 컴파일하는 방법을 지정합니다. |
configSections |
(새 섹션) 클라이언트 스크립트에서 웹 서비스가 호출되는 방법을 정의하기 위해 ASP.NET AJAX가 사용하는 system.web.extensions 섹션을 정의합니다. 자세한 내용은 ASP.NET AJAX의 웹 서비스를 참조하십시오. |
assemblies |
(compilation 요소 내의 새 섹션) ASP.NET 페이지가 컴파일될 때 참조되는 어셈블리 컬렉션을 지정합니다. ASP.NET 버전 3.5에 새로 추가된 어셈블리가 이 섹션에 포함되어 있습니다. |
namespaces |
(업데이트된 섹션) 이 섹션은 기본적으로 가져오는 네임스페이스를 지정합니다. Linq, Linq 및 Generic 네임스페이스가 추가되었습니다. |
controls |
(업데이트된 섹션) 이 섹션은 컨트롤이 포함된 어셈블리를 등록하고 컨트롤 참조를 위한 접두사를 제공합니다. 방법은 ASP.NET 웹 페이지에 대한 지시문 페이지 지시문이 개별 페이지에 컨트롤을 등록하는 방법과 비슷합니다. 기본적으로 이 섹션은 Extensions 어셈블리에 컨트롤을 등록하며 이러한 컨트롤로는 ListView 컨트롤 및 AJAX 관련 컨트롤이 있습니다. |
system.webServer |
이 섹션은 httpHandlers 및 httpModules 섹션에 추가된 AJAX 관련 HTTP 처리기 및 모듈을 대체합니다. 이 섹션은 통합 모드에서 실행되는 IIS 7.0에서 이러한 처리기와 모듈을 사용할 수 있도록 합니다. |
assemblyBinding |
(업데이트된 섹션) 이 섹션은 이전 버전 ASP.NET AJAX 프레임워크 대신 ASP.NET 버전 3.5에 포함된 ASP.NET AJAX 프레임워크를 사용하도록 런타임에 지시합니다. |
구성 도구
ASP.NET 구성 시스템은 오류 검색 기능을 포함하고 있기 때문에 텍스트 편집기를 사용할 때보다 응용 프로그램 구성 작업을 쉽게 할 수 있는 도구를 제공합니다.
ASP.NET MMC 스냅인
ASP.NET용 MMC(Microsoft Management Console) 스냅인에서는 로컬 또는 원격 웹 서버의 모든 수준에서 ASP.NET 구성 설정을 쉽게 조작할 수 있는 방법을 제공합니다. ASP.NET MMC 스냅인에서는 ASP.NET 구성 API를 사용하지만 GUI(그래픽 사용자 인터페이스)를 제공하여 구성 설정을 편집하는 과정을 단순화합니다. 또한 이 도구는 웹 응용 프로그램에서 설정을 상속할 수 있는지 여부를 제어하고 구성 계층 구조 수준 간 종속성을 관리하는 ASP.NET 구성 API 기능도 지원합니다.
참고: |
---|
ASP.NET MMC 스냅인을 사용하려면 관리자 권한이 있는 계정을 사용하여 컴퓨터에 로그온해야 합니다. |
ASP.NET MMC 스냅인은 가상 디렉터리의 속성 시트에 ASP.NET 탭으로 표시됩니다.
자세한 내용은 ASP.NET MMC 스냅인을 참조하십시오.
웹 사이트 관리 도구
웹 사이트 관리 도구를 사용하면 웹 사이트에 대한 관리자 권한이 있는 모든 사용자가 해당 웹 사이트의 구성 설정을 관리할 수 있습니다. 웹 사이트 관리 도구는 개별 웹 사이트에서 가장 일반적으로 사용되는 구성 설정에 대해 사용자에게 친숙한 그래픽 편집 도구를 제공하도록 설계되었습니다. 이 도구에서는 브라우저 기반 인터페이스를 사용하므로 웹 사이트 설정을 원격으로 변경할 수 있습니다. 이 기능은 호스팅되는 웹 사이트와 같은 제품 웹 서버에 이미 배포된 사이트를 관리하는 데 유용합니다.
웹 사이트 관리 도구는 여러 가지 면에서 ASP.NET MMC 스냅인과는 다릅니다. 예를 들어, ASP.NET MMC 스냅인은 단일 웹 사이트의 구성 설정 대신 웹 서버에 있는 구성 파일의 전체 계층 구조에 액세스할 수 있게 하므로 관리자 수준 구성에 사용하면 좋습니다. 또한 ASP.NET MMC 스냅인은 관리자만 사용할 수 있는 반면, 웹 사이트 관리 도구의 경우에는 개별 웹 사이트 소유자만 관리자 권한이 있는 사이트의 루트 디렉터리에 있는 Web.config 파일을 구성할 수 있습니다. 마지막으로, ASP.NET MMC 스냅인을 사용하면 IIS를 원격으로 관리할 수 없지만, 웹 사이트 관리 도구의 브라우저 인터페이스를 사용하면 IIS 6.0부터 시작하는 IIS 버전에 대해 원격 구성이 가능합니다.
웹 사이트 관리 도구에는 다음 탭에 관련 구성 설정이 그룹화되어 있는 탭 인터페이스가 포함되어 있습니다.
보안 탭. 웹 응용 프로그램 리소스의 보안 유지와 사용자 계정 및 역할 관리를 위한 설정이 들어 있습니다.
프로필 탭. 웹 사이트에서 방문자 정보를 수집하는 방법을 관리하는 설정이 들어 있습니다.
응용 프로그램 탭. ASP.NET 응용 프로그램에 영향을 주는 구성 요소를 관리하는 설정이 들어 있습니다.
공급자 탭. 응용 프로그램 공급자를 추가, 편집, 삭제, 테스트 또는 할당하는 설정이 들어 있습니다.
웹 사이트 관리 도구는 .NET Framework 버전 2.0 이상과 함께 자동으로 설치됩니다. 이 도구의 작동 방법에 대한 자세한 내용은 ASP.NET 웹 사이트 관리 도구를 참조하십시오.
명령줄 도구
.NET Framework에는 특정 구성 작업을 수행하는 명령줄 도구가 포함되어 있습니다. 예를 들어, Aspnet_regiis.exe 도구를 사용하면 ASP.NET 응용 프로그램에 적용할 .NET Framework 버전을 지정할 수 있습니다. 자세한 내용은 .NET Framework 도구를 참조하십시오.
ASP.NET 구성 API
ASP.NET 구성 시스템에서는 XML 구성 파일을 직접 편집하지 않고도 ASP.NET 응용 프로그램을 프로그래밍 방식으로 구성할 수 있는 관리되는 완전한 인터페이스를 제공합니다. 또한 ASP.NET 구성 API는 다음과 같은 작업을 수행합니다.
구성 계층 구조의 모든 수준에서 통합된 데이터 뷰를 제공하여 관리 작업을 단순화합니다.
구성을 만들고 스크립트 하나로 여러 컴퓨터를 구성하는 등의 배포 작업을 지원합니다.
ASP.NET 응용 프로그램, 콘솔 응용 프로그램과 스크립트, 웹 기반 관리 도구 및 MMC 스냅인을 작성하는 개발자를 위한 단일 프로그래밍 인터페이스를 제공합니다.
개발자와 관리자가 잘못된 구성 설정을 만들지 않도록 합니다.
구성 스키마를 확장할 수 있게 허용합니다. 새 구성 매개 변수를 정의하고 구성 섹션 처리기를 작성하여 이 매개 변수를 처리할 수 있습니다.
현재 실행 중인 응용 프로그램에서 구성 정보를 가져오기 위한 정적 메서드와 별도의 응용 프로그램에서 구성 정보를 가져오기 위한 비정적 메서드를 제공합니다. 정적 메서드를 사용하면 응용 프로그램 실행 속도가 더 빠르지만 이 메서드는 구성 데이터를 가져오려는 응용 프로그램 내에서만 사용할 수 있습니다.
자세한 내용은 ASP.NET 구성 API를 참조하십시오.
구성 보안
ASP.NET 구성 시스템을 사용하면 권한 없는 사용자가 액세스하지 못하도록 구성 파일을 보호할 수 있습니다. ASP.NET에서는 Machine.config 또는 Web.config 파일에 대한 액세스를 요청하는 브라우저에 대해 액세스를 거부하도록 IIS를 구성합니다. 구성 파일을 직접 요청하는 브라우저에 대해서는 HTTP 액세스 오류 403(사용할 수 없음)이 반환됩니다.
또한 다른 응용 프로그램의 구성 파일을 읽을 수 있는 권한이 있는 계정에서 구성 응용 프로그램이 완전 신뢰 권한으로 실행되고 있지 않으면 ASP.NET 응용 프로그램의 구성 파일이 다른 ASP.NET 응용 프로그램의 구성 설정에 액세스할 수 없습니다.
자세한 내용은 ASP.NET 구성 보안 및 보호되는 구성을 사용하여 구성 정보 암호화를 참조하십시오.
참고 항목
작업
연습: IIS 6.0에서 MMC를 사용하여 ASP.NET 응용 프로그램 구성
연습: IIS 7.0에서 ASP.NET 응용 프로그램 구성