다음을 통해 공유


구성 편집기 사용: 스크립트 생성

작성자: Crystal Hoyer

연습 목표

이 연습에서는 애플리케이션 풀 생성 예제를 통해 구성 편집기의 스크립트 생성 기능을 사용하는 방법을 보여 줍니다.

사전 요구 사항

이 연습을 수행하려면 다음 필수 구성 요소가 필요합니다.

1부 – 구성 편집기를 사용하여 애플리케이션 풀 만들기

  1. 서버 연결에서 "구성 편집기" 기능을 두 번 클릭하여 IIS 관리자에서 구성 편집기를 시작합니다.

  2. 섹션: 드롭다운 메뉴에서 system.applicationHost -> applicationPools를 클릭합니다.

  3. 아래에 표시된 속성 표에서 타원 "..."을 클릭합니다. ( 컬렉션) 항목에 해당하는 첫 번째 행에 있습니다.

  4. 컬렉션 편집기에서 이미 존재하는 애플리케이션 풀 목록이 표시됩니다.

  5. 작업 창에서 "추가"를 클릭합니다.

  6. 속성 섹션에 표시된 속성 표를 채웁니다.

    1. "name" 속성에는 기호에 키가 있습니다. 필수 필드를 나타냅니다. 이름으로 "applicationPool1"을 입력하여 새 애플리케이션 풀을 만듭니다.
    2. 확장할 processModel을 선택합니다.
    3. userName을 "PoolId1"로 설정
    4. 암호를 "PoolId1Pwd"로 설정
    5. identityType을 "SpecificUser"로 변경
    6. 필요에 따라 여기에서 다른 설정을 변경할 수 있습니다.
  7. [선택 사항] 구성 시스템에 변경 내용을 커밋하려면 작업 창에서 적용을 클릭합니다. 그러나 연습의 목적을 위해 그렇게하지 마십시오.

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개의 애플리케이션 풀을 만드는 코드를 만들었습니다.