구성 편집기 사용: 스크립트 생성
연습 목표
이 연습에서는 애플리케이션 풀 생성 예제를 통해 구성 편집기의 스크립트 생성 기능을 사용하는 방법을 보여 줍니다.
사전 요구 사항
이 연습을 수행하려면 다음 필수 구성 요소가 필요합니다.
1부 – 구성 편집기를 사용하여 애플리케이션 풀 만들기
서버 연결에서 "구성 편집기" 기능을 두 번 클릭하여 IIS 관리자에서 구성 편집기를 시작합니다.
섹션: 드롭다운 메뉴에서 system.applicationHost -> applicationPools를 클릭합니다.
아래에 표시된 속성 표에서 타원 "..."을 클릭합니다. ( 컬렉션) 항목에 해당하는 첫 번째 행에 있습니다.
컬렉션 편집기에서 이미 존재하는 애플리케이션 풀 목록이 표시됩니다.
작업 창에서 "추가"를 클릭합니다.
속성 섹션에 표시된 속성 표를 채웁니다.
- "name" 속성에는 기호에 키가 있습니다. 필수 필드를 나타냅니다. 이름으로 "applicationPool1"을 입력하여 새 애플리케이션 풀을 만듭니다.
- 확장할 processModel을 선택합니다.
- userName을 "PoolId1"로 설정
- 암호를 "PoolId1Pwd"로 설정
- identityType을 "SpecificUser"로 변경
- 필요에 따라 여기에서 다른 설정을 변경할 수 있습니다.
[선택 사항] 구성 시스템에 변경 내용을 커밋하려면 작업 창에서 적용을 클릭합니다. 그러나 연습의 목적을 위해 그렇게하지 마십시오.
2부 - 스크립트 생성
속성 대화 상자를 닫은 후 작업 창에서 스크립트 생성 링크를 클릭합니다. 스크립트 대화 상자의 3개 탭에는 이 섹션에서 수행한 작업을 수행하기 위한 3가지 유형의 스크립트가 표시됩니다.
관리 코드: 'applicationPool1'을 만드는 C# 코드 조각
using System;
using Microsoft.Web.Administration;
internal static class Sample {
private static void Main() {
ServerManager serverManager = new ServerManager();
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection applicationPoolsSection = config.GetSection("system.applicationHost/applicationPools");
ConfigurationElementCollection applicationPoolsCollection = applicationPoolsSection.GetCollection();
ConfigurationElement addElement = applicationPoolsCollection.CreateElement("add");
addElement["name"] = @"applicationPool1";
ConfigurationElement processModelElement = addElement.ChildElements["processModel"];
processModelElement["identityType"] = @"SpecificUser";
processModelElement["userName"] = @"PoolId1";
processModelElement["password"] = @"PoolId1Pwd";
applicationPoolsCollection.Add(addElement);
serverManager.CommitChanges();
}
}
스크립팅: 'applicationPool1'을 만드는 Jscript 코드
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var applicationPoolsSection = adminManager.GetAdminSection("system.applicationHost/applicationPools", "MACHINE/WEBROOT/APPHOST");
var applicationPoolsCollection = applicationPoolsSection.Collection;
var addElement = applicationPoolsCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "applicationPool1";
var processModelElement = addElement.ChildElements.Item("processModel");
processModelElement.Properties.Item("identityType").Value = "SpecificUser";
processModelElement.Properties.Item("userName").Value = "PoolId1";
processModelElement.Properties.Item("password").Value = "PoolId1Pwd";
applicationPoolsCollection.AddElement(addElement);
adminManager.CommitChanges();
명령줄: Appcmd 명령을 사용하여 'applicationPool1'을 만들고 identiy를 지정합니다.
appcmd.exe set config -section:system.applicationHost/applicationPools /+".[name='applicationPool1']" /commit:apphost
appcmd.exe set config -section:system.applicationHost/applicationPools /.[name='applicationPool1'].processModel.identityType:"SpecificUser" /.[name='applicationPool1'].processModel.userName:"PoolId1" /.[name='applicationPool1'].processModel.password:"PoolId1Pwd" /commit:apphost
3부 – 10개의 애플리케이션 풀을 만드는 C# 프로그램 만들기
구성 편집기에서 생성된 코드를 기반으로 코드를 리팩터링하여 하나의 애플리케이션 풀을 "CreateApplicationPool" 메서드로 만듭니다. 최종 코드는 다음과 같습니다.
using System;
using Microsoft.Web.Administration;
internal static class Sample {
private static void Main() {
ServerManager serverManager = new ServerManager();
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection applicationPoolsSection = config.GetSection("system.applicationHost/applicationPools");
ConfigurationElementCollection applicationPoolsCollection = applicationPoolsSection.GetCollection();
for (int i = 0; i < 10; i++) {
CreateApplicationPool(applicationPoolsCollection,
"AppPool" + i.ToString(),
"AppPoolId" + i.ToString(),
"AppPoolPwd" + i.ToString());
}
serverManager.CommitChanges();
}
private static void CreateApplicationPool(ConfigurationSection applicationPoolsSection,
string appPoolName,
string appPoolUserName,
string appPoolPassword)
{
ConfigurationElement addElement = applicationPoolsCollection.CreateElement("add");
addElement["name"] = appPoolName;
ConfigurationElement processModelElement = addElement.ChildElements["processModel"];
processModelElement["identityType"] = @"SpecificUser";
processModelElement["userName"] = appPoolUserName;
processModelElement["password"] = appPoolPassword;
applicationPoolsCollection.Add(addElement);
}
}
요약
이제 구성 편집기에서 도움을 받아 10개의 애플리케이션 풀을 만드는 코드를 만들었습니다.