다음을 통해 공유


제 3과: Windows PowerShell을 사용한 주문 서비스 구성

완료 시간: 20분

목표: Windows Server AppFabric cmdlet을 사용하여 응용 프로그램을 구성하는 방법을 보여 줍니다.

목적: Windows PowerShell용 AppFabric cmdlet은 개발자와 관리자가 WCF 및/또는 WF 서비스를 포함하는 응용 프로그램의 구성 및 관리를 자동화하는 데 사용할 수 있는 유용한 도구를 나타냅니다. 이 단원에서는 Order Service 응용 프로그램에 대해 모니터링 및 지속성을 다시 구성합니다.

사전 요구 사항

이 단원을 시작하기 전에 다음 사전 요구 사항을 참고하십시오.

절차

Windows PowerShell을 사용하여 Order Service 응용 프로그램을 다시 구성하려면 다음 절차를 수행합니다.

  1. 응용 프로그램에 대한 모니터링 및 지속성 저장소를 만들고 초기화합니다.

  2. 저장소에 대한 연결 문자열을 만듭니다.

  3. 새 모니터링 및 지속성 저장소를 사용하도록 Order Service 응용 프로그램에 대한 OrderWorkflow 서비스를 구성합니다.

  4. 응용 프로그램에 대해 net.pipe 프로토콜을 사용하도록 설정합니다.

모니터링 및 지속성 데이터베이스 만들기 및 초기화

이 섹션에서는 Order Service 응용 프로그램에 대한 새 모니터링 저장소와 새 지속성 저장소를 만들고 초기화합니다.

모니터링 저장소 만들기 및 초기화

  1. Windows PowerShell에서 다음 명령을 실행합니다.

    Initialize-ASMonitoringSqlDatabase -Database "OrderService_PS" -Admins "AS_Administrators","NT AUTHORITY\LOCAL SERVICE" -Readers "AS_Observers" -Writers "BUILTIN\IIS_IUSRS" | fl *
    

    지정한 저장소 이름에 "_PS" 접미사가 추가되어 Windows PowerShell에서 이 작업을 수행했음을 나타냅니다. 이렇게 하면 사용자 인터페이스 자습서와 명명 충돌이 발생하지 않습니다.

    저장소에 대한 사용 권한은 기본 AppFabric 사용 권한 및 사용자 이름을 기준으로 설정됩니다.

    앞의 명령에서는 결과 저장소 개체를 Windows PowerShell Format-List cmdlet에 대한 fl 별칭으로 파이프했습니다. 기본 형식에서는 결과를 자르기 때문에 기본 테이블 형식 대신 목록 형식을 사용하여 작업 결과를 확인하는 것이 더 쉽습니다.

  2. 이 명령을 실행한 후 Windows PowerShell의 출력이 오류 없이 다음과 비슷한지 확인합니다.

    Server           : SERVER1
    Database         : OrderService_PS
    ConnectionString : Data Source=SERVER1;Initial Catalog=OrderService_PS;Integrated Security=True
    

이제 모니터링에 사용할 OrderService_PS라는 새 모니터링 저장소가 만들어지고 초기화되었습니다.

지속성 저장소 만들기 및 초기화

지속성 관련 테이블과 아티팩트가 포함된 OrderService_PS 저장소를 초기화하려면 Initialize-ASPersistenceDatabase cmdlet을 사용합니다. 이 cmdlet은 다음 세 개의 보안 관련 매개 변수를 사용합니다.

  • -Admins

  • -Readers

  • -Users

이 자습서의 경우 기본 AppFabric 사용자 이름을 다시 사용합니다. 이 cmdlet과 함께 이러한 매개 변수를 사용하는 경우 전체 사용자 이름을 사용해야 합니다. 이렇게 하려면 Windows PowerShell에 대한 환경 공급자를 사용하여 로컬 컴퓨터 이름을 확인합니다. 이 작업이 어떻게 수행되는지 확인하려면 Windows PowerShell에 다음 명령을 입력합니다.

$env:COMPUTERNAME

이 명령의 결과는 COMPUTERNAME 환경 변수에 따라 로컬 컴퓨터 이름을 표시합니다. 이 방법을 사용하여 기본 AppFabric 사용자의 전체 사용자 이름을 제공합니다.

Order Service 응용 프로그램에 대한 지속성 저장소를 만들고 초기화하려면 다음을 수행하십시오.

  1. Windows PowerShell에서 다음 명령을 입력하여 기본 AppFabric 사용자 이름으로 지속성에 사용할 OrderService_PS 저장소를 초기화합니다.

    Initialize-ASPersistenceSqlDatabase -Database "OrderService_PS" -Admins "$($env:COMPUTERNAME)\AS_Administrators" -Readers "$($env:COMPUTERNAME)\AS_Observers" -Users "BUILTIN\IIS_IUSRS" –Confirm:$false | fl *
    

    전달한 –Confirm:$false 매개 변수를 확인합니다. 이 매개 변수를 사용하면 저장소 변경 내용을 확인하는 메시지를 무시할 수 있습니다.

  2. 결과가 오류 없이 아래에 표시된 내용과 비슷한지 확인합니다.

    Server           : SERVER1
    Database         : OrderService_PS
    ConnectionString : Data Source=SERVER1;Initial Catalog=OrderService_PS
    

이제 OrderService_PS 저장소가 지속성에 사용하도록 초기화되었습니다.

연결 문자열 만들기

방금 만든 새 모니터링 및 지속성 저장소를 사용하도록 응용 프로그램을 구성하려면 새 저장소에 대한 연결 문자열을 만들어야 합니다. 현재 Windows PowerShell용 응용 프로그램 서버 모듈에는 이 작업을 수행할 cmdlet이 포함되어 있지 않습니다. 따라서 이 작업을 수행하는 방법을 보여 주는 AppFabric의 스크립팅된 구성 샘플의 샘플 코드를 기준으로 스크립트 함수 예를 사용합니다. 이 샘플에 대한 자세한 내용은 샘플을 참조하십시오.

새 저장소에 대한 연결 문자열을 만들려면 다음을 수행하십시오.

  1. Windows PowerShell에서 다음 명령을 입력하여 Utility.ps1을 엽니다.

    Notepad Utility.ps1
    
  2. 다음 코드를 복사하여 메모장에서 파일의 맨 아래에 붙여 넣습니다.

    #=========================================================================================================#
    #===                                                                                                   ===#
    #=== Adds or updates the specified connection string setting in the specified .NET configuration file. ===#
    #===                                                                                                   ===#
    #=========================================================================================================#
    
    function UpdateConnectionString([string]$name, [string]$connectionString)
    {
        $providerName = "System.Data.SqlClient"
    
        $NETFramework4Path = gp -Path HKLM:\Software\Microsoft\'NET Framework Setup'\NDP\v4\Full
        $ConfigPath = "$($NETFramework4Path.InstallPath)Config\Web.config"
    
        Write-Output ("ConfigPath : " + $ConfigPath)
    
        $xml = [xml](Get-Content $ConfigPath)
        $root = $xml.get_DocumentElement()
    
    
        $connectionStrings = $root.SelectSingleNode("connectionStrings")
        if ($connectionStrings -eq $null)
        {
            $locations = $root.SelectNodes("location")
    
            foreach ($locationNode in $locations)
            {
                $locStrings = $locationNode.SelectSingleNode("connectionStrings")
    
                if ($locStrings -ne $null)
                {
                    $connectionStrings = $locStrings
                }
            }
    
            if ($connectionStrings -eq $null)
            {
                $connectionStrings = $xml.CreateElement("connectionStrings")
                $root.AppendChild($connectionStrings) | Out-Null
            }
        }
    
        $xpath = "add[@name='" + $name + "']"
        $add = $connectionStrings.SelectSingleNode($xpath)
        if ($add -eq $null)
        {
            Write-Output "Adding new connection string setting..."
            $add = $xml.CreateElement("add")
            $connectionStrings.AppendChild($add) | Out-Null
        }
        else
        {
            Write-Output "Updating existing connection string setting..."
        }
    
        $add.SetAttribute("name", $name)
        $add.SetAttribute("connectionString", $connectionString)
        $add.SetAttribute("providerName", $providerName)
        Write-Output $add | Format-List
    
        $xml.Save($ConfigPath)
    }
    
  3. 메모장을 닫은 다음 저장을 클릭하여 Utility.ps1을 저장합니다.

  4. Windows PowerShell에서 다음 명령을 입력하여 현재 Windows PowerShell 세션에 대한 모듈로 Utility.ps1 스크립트를 추가합니다.

    import-module .\Utility.ps1
    
  5. Windows PowerShell에서 UpdateConnectionString 함수를 사용하여 새 연결 문자열을 추가합니다. 이 자습서에 사용되는 컴퓨터에 Microsoft SQL Server 또는 SQL Server Express를 설치했는지 여부에 따라 올바른 데이터 원본을 선택해야 합니다.

    • SQL Server Express만 설치되어 있는 경우 로컬 컴퓨터의 SQL Server Express를 데이터 원본으로 사용하는 다음 명령을 사용합니다.

      UpdateConnectionString "OrderService_PS" "Data Source=.\SQLEXPRESS;Initial Catalog=OrderService_PS;Integrated Security=True"
      
    • SQL Server를 설치한 경우 SQL Server를 데이터 원본으로 사용하는 다음 명령을 사용합니다.

      UpdateConnectionString "OrderService_PS" "Data Source=localhost;Initial Catalog=OrderService_PS;Integrated Security=True"
      
  6. IIS(인터넷 정보 서비스) 관리자를 실행하여 새 연결 문자열을 확인한 다음 모니터링 데이터베이스 구성 애플릿을 두 번 클릭합니다. OrderService_PS라는 새 연결 문자열이 기본 연결 문자열과 함께 표시됩니다. 새 연결 문자열의 상태는 초기화됨이어야 합니다.

이제 AppFabric에서 모니터링 및 지속성에 OrderService_PS 저장소를 사용하도록 Order Service 응용 프로그램을 구성할 수 있습니다.

모니터링 및 지속성 데이터베이스를 사용하도록 응용 프로그램 구성

모니터링에 새 저장소를 사용하도록 Order Service_PS 웹 사이트를 구성하려면 다음을 수행하십시오.

  1. Windows PowerShell에서 다음 명령을 입력하여 새 저장소를 사용하도록 OrderService_PS 웹 사이트에 대한 모니터링을 구성합니다.

    Set-ASAppMonitoring -SiteName OrderService_PS -MonitoringLevel HealthMonitoring -ConnectionStringName OrderService_PS
    
  2. 이 명령을 실행한 후 표시되는 출력이 웹 사이트에 적용된 모니터링 설정을 보여 주는 다음과 비슷한지 확인합니다.

    ConnectionStringName : OrderService_PS
    ConnectionString     : Data Source=localhost;Initial Catalog=OrderService_PS;Integrated Security=True
    IsEnabled            : True
    MonitoringLevel      : HealthMonitoring
    ProviderId           : c37234f8-4eae-41c8-9bd4-cd42706d4219
    ProviderName         : System.Data.SqlClient
    TrackingProfile      : HealthMonitoring Tracking Profile
    SiteName             : OrderService_PS
    VirtualPath          : /
    

지속성에도 새 저장소를 사용하도록 OrderService_PS 웹 사이트를 구성하려면 다음을 수행하십시오.

  1. Windows PowerShell에서 다음 명령을 실행합니다.

    Set-ASAppSqlServicePersistence -SiteName OrderService_PS -ConnectionStringName OrderService_PS
    
  2. 이 명령을 실행한 후 표시되는 출력이 웹 사이트에 적용된 지속성 설정을 보여 주는 다음 출력과 비슷한지 확인합니다.

    ConnectionString              :
    ConnectionStringName          : OrderService_PS
    HostLockRenewalPeriod         : 00:00:20
    InstanceCompletionAction      : DeleteNothing
    InstanceEncodingOption        : GZip
    InstanceLockedExceptionAction : BasicRetry
    AuthorizedWindowsGroup        : AS_Administrators
    IsLocal                       : True
    BehaviorName                  :
    

net.pipe 프로토콜 사용

Windows Server AppFabric 인터페이스 사용 자습서제 3과: HRApplicationServices 응용 프로그램 구성에 있는 단계를 수행한 경우 OrderWorkflowService 웹 응용 프로그램에 대해 net.pipe 프로토콜을 사용하도록 이미 설정되어 있어야 합니다. 그러나 이 섹션에서는 Windows PowerShell을 통해 프로토콜을 사용하도록 설정하는 방법을 보여 줍니다. Windows PowerShell용 응용 프로그램 서버 모듈은 이 작업을 수행할 cmdlet을 노출하지 않습니다. 대신 Appcmd.exe를 사용하여 작업을 수행합니다. Appcmd.exe에 대한 자세한 내용은 Appcmd.exe(https://go.microsoft.com/fwlink/?LinkId=169337) 링크를 참조하십시오.

OrderWorkflowService 웹 응용 프로그램에 대해 net.pipe 프로토콜을 사용하도록 설정하려면 Windows PowerShell에서 다음 명령을 실행합니다.

.$env:SystemRoot\System32\inetsrv\appcmd.exe set app "OrderService_PS/OrderWorkflowService" /enabledProtocols:"http,net.pipe"

Appcmd.exe는 Windows PowerShell의 작업 성공을 다음과 같이 보고합니다.

APP object "OrderService_PS/OrderWorkflowService" changed

학습한 내용

이 단원에서는 AppFabric cmdlet을 사용하여 새 모니터링 및 지속성 저장소를 만들었습니다. 또한 Web.config 파일에서 새 연결 문자열을 만든 다음 모니터링 및 지속성에 새 저장소를 사용하도록 OrderService_PS 웹 사이트를 구성했습니다. Windows PowerShell 스크립트에 이러한 명령을 모두 추가하여 응용 프로그램 구성을 자동화할 수 있습니다.

다음 단계

제 4과: Windows PowerShell을 사용한 주문 서비스 모니터링에서는 AppFabric cmdlet을 사용하여 응용 프로그램을 모니터링하는 방법을 알아봅니다.

참고 항목

개념

제 1과: Windows PowerShell용 Windows Server AppFabric Cmdlet 시작
제 2과: Windows PowerShell을 사용한 주문 서비스 응용 프로그램 배포
제 4과: Windows PowerShell을 사용한 주문 서비스 모니터링
제 5과: Windows PowerShell을 사용한 워크플로 추적

  2011-12-05