ASP.NET 애플리케이션에서 애플리케이션 및 디렉터리별 구성 설정 만들기

이 문서에서는 ASP.NET 애플리케이션별 및 디렉터리별 구성 설정을 만드는 방법을 설명합니다.

원래 제품 버전: ASP.NET
원래 KB 번호: 815174

요약

Web.config파일은 ASP.NET 애플리케이션의 루트 디렉터리에 있습니다. Web.config 파일은 애플리케이션과 관련된 구성 정보를 지정합니다. 디렉터리별로 구성 설정을 설정할 수도 있습니다. 이렇게 하는 방법에는 두 가지가 있습니다.

  • 애플리케이션의 디렉터리에 여러 Web.config 파일을 배포합니다. 상위 수준Web.config 파일 또는 시스템 컴퓨터 구성(Machine.config) 파일에서 설정을 재정의하는 설정을 사용하여 ASP.NET 애플리케이션 디렉터리에Web.config파일을 추가합니다.

  • 디렉터리별 또는 파일별 설정을 애플리케이션 Web.config 파일에 직접 추가합니다. 이 메서드는 단일 Web.config 파일을 사용하여 디렉터리별 구성 설정을 켭니다. Machine.config파일에서 이 메서드를 사용하여 ASP.NET 웹 애플리케이션에서 구성 설정을 강제 적용한 다음 Web.config파일이Machine.config 설정을 재정의하지 못하도록 할 수도 있습니다.

Machine.config 파일에서 location 요소 사용

웹 애플리케이션 또는 디렉터리에 적용되는 설정을 지정하려면 시스템 Machine.config 파일의 요소에 요소를 <configuration> 추가할 <location> 수 있습니다. 단일 파일에서 구성 설정을 중앙 집중화할 때 유용합니다. 또한 웹 호스팅 환경에서 개별 웹 애플리케이션에 특정 구성 설정을 위임하는 데 유용합니다.

요소에는 <location>allowOverride두 가지 특성이 path 포함됩니다. 특성은 path 구성 설정에서 다루는 사이트 또는 가상 디렉터리를 정의합니다. 요소의 설정 <location> 이 기본 웹 사이트에 적용되도록 지정하려면 특성을 Default Web Site로 설정합니다path. 설정이 기본 웹 사이트에서 MyApp이라는 애플리케이션에 적용되도록 지정하려면 특성을 Default Web Site/MyApp로 설정합니다path.

특성이 allowOverride false이면 웹 애플리케이션 디렉터리의 Web.config 파일은 요소에서 <location> 지정한 설정을 재정의할 수 없습니다. 애플리케이션 개발자가 웹 애플리케이션을 구성하는 방법을 제한해야 하는 환경에서 유용한 설정입니다. 다음 예제에서는 Machine.config 파일의 일부를 보여줍니다. 파일은 기본 웹 사이트의 MyApp 애플리케이션에 액세스하기 위해 인증이 필요하며 Web.config 파일의 설정으로 재정의할 수 없습니다.

<configuration>
    <location path="Default Web Site/MyApp" allowOverride="false">
        <system.web>
            <authorization>
                <allow users="?" />
            </authorization>
        </system.web>
    </location>
</configuration>

Web.config 파일에서 location 요소 사용

특정 애플리케이션 또는 디렉터리에 적용되는 설정을 지정하려면 애플리케이션 Web.config 파일의 요소에 요소를 <configuration> 추가 <location> 합니다. <location> 요소는 일반적으로 요소와 다른 구성 요소를 Web.config 파일에서 사용하는 것과 정확히 동일하게 포함합니다<system.web>. 요소의 <location> 특성은 path 위치 구성 항목이 적용되는 가상 디렉터리 또는 파일 이름을 지정합니다. 다음 예제에서는 포럼 가상 디렉터리에 대한 사용자 지정 오류 메시지를 지정하는 애플리케이션 Web.config 파일의 일부를 보여줍니다.

<configuration>
    <location path="forum" >
        <system.web>
            <customErrors mode="RemoteOnly" defaultRedirect="forum-error.aspx">
                <error statusCode="404" redirect="forum-file-not-found.aspx" />
            </customErrors>
        </system.web>
    </location>
</configuration>

참조