Aracılığıyla paylaş


Ders 3: Windows PowerShell ile Sipariş Hizmeti Yapılandırma

Tamamlama süresi: 20 dakika

Hedef: Uygulamaları yapılandırmak üzere Windows Server AppFabric cmdlet'lerin kullanımını göstermek.

Amaç: Windows PowerShell için AppFabric cmdlet'leri, geliştirici ve yöneticilerin WCF ve/veya WF hizmetlerini içeren uygulamaların yapılandırmasını ve yönetimini otomatikleştirmek üzere kullanabilecekleri yararlı araçlardır. Bu derste, Sipariş Hizmeti uygulaması için izleme ve kalıcılık özelliklerini yeniden yapılandıracaksınız.

Önkoşullar

Bu derse başlamadan önce aşağıdaki önkoşulları dikkate alın:

Yordam

Sipariş Hizmeti uygulamasını Windows PowerShell ile yeniden yapılandırmak için aşağıdaki yordamları uygulamalısınız:

  1. Uygulama için izleme ve kalıcılık depolarını oluşturun ve başlatın.

  2. Depo için bağlantı dizelerini oluşturun.

  3. Yeni izleme ve kalıcılık deposunu kullanmak üzere Sipariş Hizmeti uygulaması için Sipariş İş Akışı Hizmeti'ni yapılandırın.

  4. Uygulama için net.pipe protokolünü etkinleştirin.

İzleme ve Kalıcılık Veritabanlarını Oluşturma ve Başlatma

Bu bölümde, Sipariş Hizmeti uygulamasıyla kullanmak üzere yeni bir izleme deposu ve yeni bir kalıcılık deposu oluşturup başlatacaksınız.

İzleme deposunu oluşturma ve başlatma

  1. Windows PowerShell'den aşağıdaki komutu yürütün.

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

    Verilen depo adının, bu işlemi Windows PowerShell ile uyguladığınızı gösteren bir “_PS” sonekine sahip olması gerektiğine dikkat edin. Bunun amacı, kullanıcı arabirimi öğreticisinde ad çakışmalarını engellemektir.

    Depo için ayarladığınız izinler, varsayılan AppFabric izinlerini ve asıl adlarını temel alır.

    Önceki komutta sonuçta elde edilen depo nesnesini, komut zinciri kullanarak Windows PowerShell Format-List cmdlet'inin fl diğer adına geçirdiniz. Varsayılan biçim, sonucu kestiğinden işlemin sonucunu liste biçimini kullanarak görmek varsayılan tablo biçimini kullanarak görmekten daha kolaydır.

  2. Bu komutu yürüttükten sonra Windows PowerShell'deki çıktının aşağıdakine benzediğini ve hata içermediğini onaylayın.

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

OrderService_PS adlı yeni bir izleme deposu oluşturuldu ve izleme işlemi için başlatıldı.

Kalıcılık deposunu oluşturma ve başlatma

OrderService_PS deposunu kalıcılıkla ilgili tablo ve yapılarla başlatmak için Initialize-ASPersistenceDatabase cmdlet'i kullanılır. Bu cmdlet, güvenlikle ilgili üç parametre kabul eder:

  • -Admins

  • -Readers

  • -Users

Bu öğreticide yine varsayılan AppFabric asıl adlarını kullanacaksınız. Bu parametreleri bu cmdlet ile kullanırken tam asıl adları kullanmalısınız. Bunu gerçekleştirmek için yerel bilgisayar adını çözümlemek üzere Windows PowerShell'in ortam sağlayıcısını kullanacaksınız. Bunun nasıl çalıştığını görmek için aşağıdaki komutu Windows PowerShell'e girin.

$env:COMPUTERNAME

Bu komutun sonucu, COMPUTERNAME ortam değişkenine göre yerel bilgisayar adınızı görüntüler. Bu yaklaşımı, varsayılan AppFabric asıl adlarının tam asıl adını sağlamak için kullanacaksınız.

Sipariş Hizmeti uygulaması için kalıcılık deposunu oluşturup başlatmak üzere

  1. Varsayılan AppFabric asıl adlarını kullanarak OrderService_PS deposunu kalıcılık için başlatmak üzere aşağıdaki komutu Windows PowerShell'e girin.

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

    Geçirdiğiniz –Confirm:$false parametresine dikkat edin. Bu, depoda yapılan değişiklikleri onaylamak üzere istemleri atlamanızı sağlar.

  2. Sonucun, aşağıda gösterilene benzediğini ve hata içermediğini onaylayın.

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

OrderService_PS deposu şimdi kalıcılık ile kullanılmak üzere başlatılmıştır.

Bağlantı Dizesini oluşturma

Uygulamayı, oluşturduğunuz yeni izleme ve kalıcılık deposunu kullanacak şekilde yapılandırmak üzere yeni depo için bir bağlantı dizesi oluşturmalısınız. Şu anda Windows PowerShell için ApplicationServer modülü, bunu yapmak için bir cmdlet içermez. Bu nedenle, bu işlemi nasıl gerçekleştireceğinizi göstermek için AppFabric'i Komut Dosyasıyla Yapılandırma örneğindeki örnek kodunu temel alan bir komut dosyası işlevi örneği kullanacağız. Bu örnek hakkında daha fazla bilgi için bkz. Örnekler.

Yeni depo için bağlantı dizesini oluşturmak üzere

  1. Utility.ps1'i açmak için Windows PowerShell'de aşağıdaki komutu yazın.

    Notepad Utility.ps1
    
  2. Aşağıdaki kodu kopyalayın ve Not Defteri'nde dosyanın altına yapıştırın.

    #=========================================================================================================#
    #===                                                                                                   ===#
    #=== 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. Not Defteri'ni kapatın ve ardından Utility.ps1'i kaydetmek için Kaydet'i tıklatın.

  4. Utility.ps1 komut dosyasını, geçerli Windows PowerShell oturumu için bir modül olarak eklemek üzere Windows PowerShell'de aşağıdaki komutu girin.

    import-module .\Utility.ps1
    
  5. Windows PowerShell'de yeni bağlantı dizesini eklemek için UpdateConnectionString işlevini kullanın. Bu öğretici için kullanılan bilgisayarda Microsoft SQL Server veya SQL Server Express yüklemenize bağlı olarak doğru veri kaynağını seçmelisiniz.

    • Yalnızca SQL Server Express'i yüklediyseniz, yerel bilgisayarda veri kaynağı olarak SQL Server Express'i kullanan aşağıdaki komutu yürütün:

      UpdateConnectionString "OrderService_PS" "Data Source=.\SQLEXPRESS;Initial Catalog=OrderService_PS;Integrated Security=True"
      
    • SQL Server uygulamasını yüklediyseniz, veri kaynağı olarak SQL Server uygulamasını kullanan aşağıdaki komutu yürütün:

      UpdateConnectionString "OrderService_PS" "Data Source=localhost;Initial Catalog=OrderService_PS;Integrated Security=True"
      
  6. Internet Information Services (IIS) Yöneticisi'ni çalıştırıp ardından İzleme Veritabanı Yapılandırması uygulamasını çift tıklatarak yeni bağlantı dizesini doğrulayın. Bunun üzerine, varsayılan bağlantı dizeleriyle birlikte OrderService_PS adlı yeni bağlantı dizesi görüntülenir. Yeni bağlantı dizesinin durumu Başlatıldı olmalıdır.

Bu Sipariş Hizmeti uygulaması şimdi izleme ve kalıcılık işlemleri için OrderService_PS deposunu kullanmak üzere AppFabric tarafından yapılandırılabilir.

Uygulamayı İzleme ve Kalıcılık Veritabanlarını Kullanmak Üzere Yapılandırma

Order Service_PS Web sitesini izleme için yeni depoyu kullanacak şekilde yapılandırmak üzere

  1. OrderService_PS Web sitesini izleme için yeni depoyu kullanacak şekilde yapılandırmak üzere Windows PowerShell'de aşağıdaki komutu girin.

    Set-ASAppMonitoring -SiteName OrderService_PS -MonitoringLevel HealthMonitoring -ConnectionStringName OrderService_PS
    
  2. Komutu çalıştırarak elde ettiğiniz çıktının, Web sitesine uygulanan izleme ayarlarını gösteren aşağıdaki çıktıya benzediğini doğrulayın.

    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 Web sitesini kalıcılık için de yeni depoyu kullanacak şekilde yapılandırmak üzere

  1. Windows PowerShell'de aşağıdaki komutu yürütün.

    Set-ASAppSqlServicePersistence -SiteName OrderService_PS -ConnectionStringName OrderService_PS
    
  2. Komutu çalıştırarak elde ettiğiniz çıktının, Web sitesine uygulanan kalıcılık ayarlarını gösteren aşağıdaki çıktıya benzediğini doğrulayın.

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

Net.pipe Protokolünü Etkinleştirme

Windows Server AppFabric Arabirimini Kullanma Eğitmeni'nin Ders 3: HRApplicationServices Uygulamasını Yapılandırma kısmındaki adımı izlediyseniz, net.pipe protokolünün OrderWorkflowService Web uygulaması için zaten etkinleştirilmiş olması gerekir. Ancak bu bölümde protokolün Windows PowerShell ile nasıl etkinleştirileceği gösterilmiştir. Windows PowerShell için ApplicationServer modülü bu işlem için bir cmdlet göstermez. İşlem bunun yerine Appcmd.exe kullanılarak gerçekleştirilir. Appcmd.exe hakkında daha fazla bilgi için aşağıdaki bağlantıya bakın: Appcmd.exe (https://go.microsoft.com/fwlink/?LinkId=169337).

OrderWorkflowService Web uygulaması için net.pipe protokolünü etkinleştirmek üzere Windows PowerShell'de aşağıdaki komutu yürütün.

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

Appcmd.exe işlemin başarılı olduğunu Windows PowerShell'de aşağıdaki gibi bildirir.

APP object "OrderService_PS/OrderWorkflowService" changed

Şimdi Ne Yapmış Oldum?

Bu derste, AppFabric cmdlet'lerini kullanarak yeni bir izleme ve kalıcılık deposu oluşturdunuz. Ayrıca Web.config dosyasında yeni bir bağlantı dizesi oluşturdunuz ve OrderService_PS Web sitesini izleme ve kalıcılık için yeni depoyu kullanacak şekilde yapılandırdınız. Uygulama yapılandırmasını otomatikleştirmek için bu komutların tümünü bir Windows PowerShell komut dosyasına ekleyebilirsiniz.

Sonraki Adımlar

Ders 4: Windows PowerShell ile Sipariş Hizmetini İzleme bölümünde, AppFabric cmdlet'lerini kullanarak uygulamaları nasıl izleyeceğinizi öğreneceksiniz.

Ayrıca bkz.

Kavramlar

Ders 1: Windows PowerShell İçin Windows Server AppFabric Cmdlet'lerine Giriş
Ders 2: Windows PowerShell ile Sipariş Hizmeti Uygulaması Dağıtma
Ders 4: Windows PowerShell ile Sipariş Hizmetini İzleme
Ders 5: Windows PowerShell ile İş Akışını İzleme

  2011-12-05