Appcmd.exe를 사용해 IIS 7 이상에서 web.config 파일을 수정하는 방법은?
💡 요약 정리
- IIS 7 이상에서 설정 구성을 위해 web.config 또는 ApplicationHost.config 파일을 수정할 수 있습니다.
- Appcmd.exe 명령어를 이용해 사이트, 앱 또는 가상 디렉터리 단위로 설정을 변경할 수 있습니다.
/commit:APPHOST옵션을 사용하면 ApplicationHost.config 파일에 직접 기록할 수 있습니다.- 변경된 설정은 web.config 또는 parent config 파일(location tag)로 반영됩니다.
- 변경 적용에는 경로 지정 및 파일 쓰기 권한이 필요합니다.
IIS 7에서는 웹 서버의 서버 수준 구성 파일이나 사이트, 응용 프로그램 또는 가상 디렉터리의 Web.config 파일에서 설정을 구성할 수 있습니다. 사이트나 응용 프로그램 디렉터리의 Web.config 파일에서 설정을 보거나 변경하려면 해당 디렉터리의 파일에 대한 읽기 및 쓰기 권한이 있어야 합니다. 또한 IIS 7에서 사이트, 응용 프로그램 또는 가상 디렉터리 수준에서 구성하려는 기능을 위임해야 합니다.
적용 대상: Windows Vista, Windows 7, Windows Server 2008 이상 제품1. Appcmd.exe를 사용하여 Web.config 파일의 구성 변경
Appcmd.exe 를 사용하여 특정 사이트, 응용 프로그램 또는 가상 디렉터리에 대한 Web.config 파일의 설정을 구성할 때는 해당 구성을 적용할 대상 사이트, 응용 프로그램 또는 가상 디렉터리의 경로를 지정해야 합니다.
예를 들어 Contoso라는 웹 사이트에서 기본 문서 기능을 사용하지 않도록 설정하려면 명령 프롬프트에 다음 명령을 입력합니다.
appcmd set config "Contoso" /section:defaultDocument /enabled:false
위의 예제에서는 Contoso 디렉터리의 Web.config 파일에서 구성을 변경하고, 모든 Contoso 응용 프로그램과 가상 디렉터리는 이 Web.config 파일에서 구성을 상속받습니다.
그러나 Contoso 사이트의 특정 응용 프로그램에서 기본 문서를 사용하려는 경우, Appcmd.exe를 사용하여 해당 응용 프로그램의 경로를 지정할 수 있습니다.
예를 들어 Gallery라는 응용 프로그램에서 기본 문서를 사용하고자 할 때는 다음 명령어를 사용합니다.
appcmd set config "Contoso/Gallery" /section:defaultDocument /enabled:true
이 명령은 Contoso 사이트의 Gallery 응용 프로그램에 대해 기본 문서를 사용하도록 설정하고, Gallery 디렉터리의 Web.config 파일에 구성 변경 내용을 기록합니다.
2. Appcmd.exe를 사용하여 부모 수준 구성 파일의 구성 변경
앞 단원에서는 Appcmd.exe를 사용해서 Web.config 파일에서 변경 내용을 작성하여 특정 사이트, 응용 프로그램 또는 가상 디렉터리의 기능을 구성하는 방법을 설명했습니다.
부모 구성 파일에서 <location> 태그를 사용하여 특정 사이트, 응용 프로그램, 가상 디렉터리 또는 URL의 기능을 구성할 수 도 있습니다.
사이트, 응용 프로그램 또는 가상 디렉터리의 설정을 구성할 때 Web.config 파일 대신 ApplicationHost.config와 같은 부모 구성 파일에 설정을 저장하려면 명령어에 commit 매개변수를 사용해야 합니다.
다음은 이전 예제를 기반으로 구성 변경 내용을 ApplicationHost.config에 저장하며 수행하는 방법입니다.
① 사이트에서 기본 문서를 비활성화
appcmd set config "Contoso" /section:defaultDocument /enabled:false /commit:APPHOST
- 위 명령은 Contoso 사이트에 대해 기본 문서를 사용하지 않도록 설정한 후,
<location>태그를 활용해 ApplicationHost.config 파일에 해당 변경 내용을 기록합니다. - 설정이 반영된 구성 섹션은 다음과 유사합니다.
<location path="Contoso">
<system.webServer>
<defaultDocument enabled="false" />
</system.webServer>
</location>
② 응용 프로그램에서 기본 문서를 활성화
appcmd set config "Contoso/Gallery" /section:defaultDocument /enabled:true /commit:APPHOST
- 위 명령은 Gallery 응용 프로그램에 대해 기본 문서를 활성화하며 위치 태그로 ApplicationHost.config에 구성 설정을 기록합니다.
- 설정이 반영된 구성 섹션은 다음과 유사합니다.
<location path="Contoso/Gallery">
<system.webServer>
<defaultDocument enabled="true" />
</system.webServer>
</location>