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:
Relace prostředí Windows PowerShell musí být nastavena podle pokynů v části Lekce 1: Začínáme s rutinami technologie Windows Server AppFabric pro prostředí Windows PowerShell.
Aplikace Order Service musí být nasazena podle pokynů v části Lekce 2: Nasazení aplikace Objednávková služba pomocí prostředí Windows PowerShell.
Postup
Překonfigurování aplikace objednávkové služby v prostředí Windows PowerShell provedete pomocí následujících postupů:
Vytvoření a inicializace úložiště monitorování a úložiště trvalosti pro danou aplikaci
Vytvoření připojovacích řetězců pro úložiště
Konfigurace služby OrderWorkflowService pro aplikaci objednávkové služby tak, aby používala nové úložiště monitorování a trvalosti
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í
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.
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
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ě.
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ě
Zadáním následujícího příkazu v prostředí Windows PowerShell otevřete skript Utility.ps1.
Notepad Utility.ps1
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) }
Ukončete program Poznámkový blok a potom skript Utility.ps1 uložte kliknutím na tlačítko Uložit.
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
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"
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í
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
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
V prostředí Windows PowerShell spusťte následující příkaz.
Set-ASAppSqlServicePersistence -SiteName OrderService_PS -ConnectionStringName OrderService_PS
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