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>