Sdílet prostřednictvím


Lekce 3: Konfigurace objednávkové služby v prostředí Windows PowerShell

Čas do dokončení: 20 minut

Cíl: Ukázka konfigurace aplikací pomocí rutin technologie Windows Server AppFabric

Účel: Rutiny technologie AppFabric pro prostředí Windows PowerShell jsou užitečný nástroj, pomocí něhož mohou vývojáři a správci automatizovat konfiguraci a správu aplikací, jež zahrnují služby WCF a WF. V této lekci překonfigurujete monitorování a trvalost pro aplikaci objednávkové služby.

Požadavky

Před zahájením této lekce musí být splněny následující předpoklady:

Postup

Překonfigurování aplikace objednávkové služby v prostředí Windows PowerShell provedete pomocí následujících postupů:

  1. Vytvoření a inicializace úložiště monitorování a úložiště trvalosti pro danou aplikaci

  2. Vytvoření připojovacích řetězců pro úložiště

  3. Konfigurace služby OrderWorkflowService pro aplikaci objednávkové služby tak, aby používala nové úložiště monitorování a trvalosti

  4. Povolení protokolu net.pipe pro danou aplikaci

Vytvoření a inicializace databáze monitorování a databáze trvalosti

V této části vytvoříte a inicializujete nové úložiště monitorování a nové úložiště trvalosti, jež bude používat aplikace objednávkové služby.

Vytvoření a inicializace úložiště monitorování

  1. Z prostředí Windows PowerShell spusťte následující příkaz.

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

    Všimněte si, že zadaný název úložiště má příponu _PS, která určuje, že jste tuto akci provedli v prostředí Windows PowerShell. Důvodem je předcházení konfliktům názvů s kurzem pro uživatelské rozhraní.

    Oprávnění, která nastavujete pro úložiště, jsou založena na výchozích oprávněních a hlavních názvech technologie AppFabric.

    V předchozím příkazu jste výsledný objekt úložiště přesměrovali na alias fl pro rutinu prostředí Windows PowerShell Format-List. Místo výchozího formátu tabulky lze výsledek operace snadněji zkontrolovat pomocí formátu seznamu, protože výchozí formát zkrátí výsledek.

  2. Ověřte, zda se výstup v prostředí Windows PowerShell po spuštění tohoto příkazu podobá následujícímu výstupu a neobsahuje chyby.

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

Nové úložiště monitorování s názvem OrderService_PS je nyní vytvořeno a inicializováno pro monitorování.

Vytvoření a inicializace úložiště trvalosti

K inicializaci úložiště OrderService_PS s tabulkami souvisejícími s trvalostí a artefakty použijte rutinu Initialize-ASPersistenceDatabase. Tato rutina přijímá tři parametry související se zabezpečením:

  • -Admins

  • -Readers

  • -Users

Pro tento kurz použijete znovu výchozí hlavní názvy technologie AppFabric. Při použití těchto parametrů s touto rutinou je nutné používat úplné hlavní názvy. Tato podmínka bude splněna, pokud k přeložení názvu místního počítače použijete zprostředkovatele prostředí pro prostředí Windows PowerShell. Chcete-li zjistit, jak to funguje, zadejte následující příkaz do prostředí Windows PowerShell.

$env:COMPUTERNAME

Výsledek tohoto příkazu zobrazí název vašeho místního počítače podle proměnné prostředí COMPUTERNAME. Tento přístup použijete k získání úplného hlavního názvu výchozích hlavních názvů technologie AppFabric.

Vytvoření a inicializace úložiště trvalosti pro aplikaci objednávkové služby

  1. K inicializaci úložiště OrderService_PS pro trvalost s použitím výchozích hlavních názvů technologie AppFabric zadejte v prostředí Windows PowerShell následující příkaz.

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

    Všimněte si zadaného parametru –Confirm:$false. Tento parametr umožňuje vynechat výzvy pro potvrzení změn úložiště.

  2. Ověřte, zda se výsledek podobá následujícímu výstupu a neobsahuje chyby.

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

Úložiště OrderService_PS je nyní inicializováno pro použití s trvalostí.

Vytvoření připojovacího řetězce

Při konfiguraci aplikace tak, aby používala nově vytvořené úložiště monitorování a trvalosti, je nutné vytvořit připojovací řetězec pro nové úložiště. Nyní Modul ApplicationServer pro prostředí Windows PowerShell nezahrnuje rutinu pro provedení této akce. Použijeme tedy příklad funkce skriptu, který je založen na ukázkovém kódu z tématu Konfigurace technologie AppFabric pomocí skriptu, kde je tento postup ukázán. Další informace o této ukázce naleznete v tématu Ukázky.

Vytvoření připojovacího řetězce pro nové úložiště

  1. Zadáním následujícího příkazu v prostředí Windows PowerShell otevřete skript Utility.ps1.

    Notepad Utility.ps1
    
  2. Zkopírujte následující kód a v programu Poznámkový blok jej vložte do dolní části souboru.

    #=========================================================================================================#
    #===                                                                                                   ===#
    #=== 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. Ukončete program Poznámkový blok a potom skript Utility.ps1 uložte kliknutím na tlačítko Uložit.

  4. Zadáním následujícího příkazu v prostředí Windows PowerShell přidejte skript Utility.ps1 jako modul pro aktuální relaci prostředí Windows PowerShell.

    import-module .\Utility.ps1
    
  5. V prostředí Windows PowerShell přidejte pomocí funkce UpdateConnectionString nový připojovací řetězec. Je nutné zvolit správný zdroj dat podle toho, zda je v počítači používaném pro tento kurz nainstalován systém Microsoft SQL Server nebo SQL Server Express.

    • Pokud je nainstalován pouze systém SQL Server Express, použijte následující příkaz, jenž používá jako zdroj dat systém SQL Server Express v místním počítači:

      UpdateConnectionString "OrderService_PS" "Data Source=.\SQLEXPRESS;Initial Catalog=OrderService_PS;Integrated Security=True"
      
    • Jestliže je nainstalován systém SQL Server, použijte následující příkaz, který používá jako zdroj dat systém SQL Server:

      UpdateConnectionString "OrderService_PS" "Data Source=localhost;Initial Catalog=OrderService_PS;Integrated Security=True"
      
  6. Ověřte nový připojovací řetězec spuštěním Správce Internetové informační služby (IIS) a potom dvakrát klikněte na aplet Konfigurace databáze monitorování. Tento aplet by měl zobrazovat nový připojovací řetězec s názvem OrderService_PS a výchozí připojovací řetězce. Nový připojovací řetězec by měl mít stav Inicializováno.

Nyní lze aplikaci objednávkové služby nakonfigurovat pomocí technologie AppFabric tak, aby pro monitorování a trvalost používala úložiště OrderService_PS.

Konfigurace aplikace tak, aby používala databázi monitorování a trvalosti

Konfigurace webu Order Service_PS tak, aby používal nové úložiště pro monitorování

  1. V prostředí Windows PowerShell zadáním následujícího příkazu nakonfigurujte monitorování tak, aby web OrderService_PS používal nové úložiště.

    Set-ASAppMonitoring -SiteName OrderService_PS -MonitoringLevel HealthMonitoring -ConnectionStringName OrderService_PS
    
  2. Ověřte, zda se výstup po spuštění příkazu podobá následujícímu výstupu, který zobrazuje nastavení monitorování použité pro tento web.

    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          : /
    

Konfigurace webu OrderService_PS tak, aby používal rovněž nové úložiště pro trvalost

  1. V prostředí Windows PowerShell spusťte následující příkaz.

    Set-ASAppSqlServicePersistence -SiteName OrderService_PS -ConnectionStringName OrderService_PS
    
  2. Ověřte, zda se výstup po spuštění příkazu podobá následujícímu výstupu, který zobrazuje nastavení trvalosti použité pro tento web.

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

Povolení protokolu net.pipe

Protokol net.pipe pro webovou aplikaci OrderWorkflowService by měl být již povolen, jestliže jste postupovali podle pokynů v tématu Lekce 3: Konfigurace aplikace HRApplicationServices ve Kurz využívající rozhraní technologie Windows Server AppFabric. V této části je však uvedeno, jak povolit protokol v prostředí Windows PowerShell. Modul ApplicationServer pro prostředí Windows PowerShell nezveřejňuje rutinu pro tuto operaci. Místo toho je tato operace prováděna pomocí nástroje Appcmd.exe. Další informace o nástroji Appcmd.exe získáte pomocí následujícího odkazu: Appcmd.exe (https://go.microsoft.com/fwlink/?LinkId=169337) (stránka může být v angličtině).

Chcete-li pro webovou aplikaci OrderWorkflowService povolit protokol net.pipe, spusťte v prostředí Windows PowerShell následující příkaz.

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

Nástroj Appcmd.exe oznámí úspěch operace v prostředí Windows PowerShell takto:

APP object "OrderService_PS/OrderWorkflowService" changed

Co jsme právě provedli?

V této lekci jste pomocí rutin technologie AppFabric vytvořili nové úložiště monitorování a trvalosti. Vytvořili jste rovněž nový připojovací řetězec v souboru Web.config a potom jste nakonfigurovali web OrderService_PS tak, aby používal nové úložiště pro monitorování a trvalost. Všechny uvedené příkazy je možné přidat do skriptu prostředí Windows PowerShell a automatizovat tak konfiguraci aplikací.

Další kroky

V části Lekce 4: Monitorování objednávkové služby v prostředí Windows PowerShell se dozvíte, jak pomocí rutin technologie AppFabric monitorovat aplikace.

Další odkazy

Koncepty

Lekce 1: Začínáme s rutinami technologie Windows Server AppFabric pro prostředí Windows PowerShell
Lekce 2: Nasazení aplikace Objednávková služba pomocí prostředí Windows PowerShell
Lekce 4: Monitorování objednávkové služby v prostředí Windows PowerShell
Lekce 5: Sledování pracovního postupu v prostředí Windows PowerShell

  2011-12-05