Lekce 2: Nasazení aplikace Objednávková služba pomocí prostředí Windows PowerShell
Čas do dokončení: 25 minut
Cíl: Získání informací o nasazení aplikací obsahujících služby WCF a WF do služby IIS.
Účel: Tato lekce ukazuje příklad přístupu k použití prostředí Windows PowerShell k nasazení pomocí nástroje Web Deployment prostřednictvím skriptů. Nově nasadíte aplikaci Order Service (Objednávková služba) na web s názvem OrderService_PS.
Předpoklady
Pamatujte na následující předpoklady:
Je třeba stáhnout výukové soubory z webu https://go.microsoft.com/fwlink/?LinkId=160309.
Výukové soubory je třeba extrahovat do adresáře C:\ podle pokynů v části Lekce 1: Začínáme v Kurz využívající rozhraní technologie Windows Server AppFabric.
Je třeba absolvovat Lekce 1: Začínáme s rutinami technologie Windows Server AppFabric pro prostředí Windows PowerShell.
Postup
Během procesu nového nasazení aplikace Order Service (Objednávková služba) provedete následující kroky:
Příprava konfiguračních souborů k nasazení
Sestavení balíčků nasazení pomocí platformy MSBuild v prostředí Windows PowerShell
Vytvoření webu OrderService_PS a fondu aplikací
Nasazení jednotlivých webových služeb pomocí nástroje Web Deployment a prostředí Windows PowerShell
Testování jednotlivých webových služeb v prostředí Windows PowerShell
Příprava konfiguračních souborů k nasazení
Použijete prostředí Windows PowerShell k nasazení aplikace Order Service (Objednávková služba) na nový web používající port 95. V této části budete před nasazením aktualizovat adresy koncových bodů v konfiguračních souborech novými informacemi o portu.
Spuštěním následujícího příkazu v prostředí Windows PowerShell otevřete soubor app.config pro službu OrderClient (Klient objednávek).
notepad C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\app.config
Nahraďte oddíl client následujícím oddílem client.
<client> <endpoint address="https://localhost:95/OrderWorkflowService/OrderWorkflow.xamlx" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_Microsoft.Samples.Dublin.Tutorials.OrderService.OrderWorkflowService.IOrderWorkflowService" contract="OrderWorkflowService.MicrosoftSamplesDublinTutorialsOrderServiceOrderWorkflowServiceIOrderWorkflowService" name="BasicHttpBinding_Microsoft.Samples.Dublin.Tutorials.OrderService.OrderWorkflowService.IOrderWorkflowService" /> </client>
Ukončete program Poznámkový blok a kliknutím na tlačítko Uložit potvrďte uložení změn.
Spuštěním následujícího příkazu v prostředí Windows PowerShell otevřete soubor Web.config pro službu OrderProcessingService (Služba zpracování objednávek).
notepad C:\DublinTutorial\OrderServiceSolution\Completed\OrderProcessingService\Web.config
Nahraďte oddíl client následujícím oddílem client.
<client> <endpoint address="https://localhost:95/OrderWorkflowService/OrderWorkflow.xamlx" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_Microsoft.Samples.Dublin.Tutorials.OrderService.OrderWorkflowService.IOrderWorkflowService" contract="OrderWorkflowService.MicrosoftSamplesDublinTutorialsOrderServiceOrderWorkflowServiceIOrderWorkflowService" name="BasicHttpBinding_Microsoft.Samples.Dublin.Tutorials.OrderService.OrderWorkflowService.IOrderWorkflowService" /> </client>
Ukončete program Poznámkový blok a kliknutím na tlačítko Uložit potvrďte uložení změn.
Spuštěním následujícího příkazu v prostředí Windows PowerShell otevřete soubor Web.config pro službu OrderWorkflowService (Služba pracovního postupu objednávek).
notepad C:\DublinTutorial\OrderServiceSolution\Completed\OrderWorkflowService\Web.config
Nahraďte oddíl client následujícím oddílem client.
<client> <endpoint address="https://localhost:95/OrderProcessingService/OrderProcessing.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IOrderProcessing" contract="IOrderProcessing" name="BasicHttpBinding_IOrderProcessing" /> <endpoint address="https://localhost:95/ShippingService/Shipping.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IShipping" contract="IShipping" name="BasicHttpBinding_IShipping" /> </client>
Ukončete program Poznámkový blok a kliknutím na tlačítko Uložit potvrďte uložení změn.
Spuštěním následujícího příkazu v prostředí Windows PowerShell otevřete soubor Web.config pro službu ShippingService (Expediční služba).
notepad C:\DublinTutorial\OrderServiceSolution\Completed\ShippingService\Web.config
Nahraďte oddíl client následujícím oddílem client.
<client> <endpoint address="https://localhost:95/OrderWorkflowService/OrderWorkflow.xamlx" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_Microsoft.Samples.Dublin.Tutorials.OrderService.OrderWorkflowService.IOrderWorkflowService" contract="OrderWorkflowService.MicrosoftSamplesDublinTutorialsOrderServiceOrderWorkflowServiceIOrderWorkflowService" name="BasicHttpBinding_Microsoft.Samples.Dublin.Tutorials.OrderService.OrderWorkflowService.IOrderWorkflowService" /> </client>
Ukončete program Poznámkový blok a kliknutím na tlačítko Uložit potvrďte uložení změn.
Sestavení balíčků nasazení pomocí platformy MSBuild v prostředí Windows PowerShell
MSBuild (Microsoft Build Engine) je platforma sestavení pro společnost Microsoft a aplikaci Visual Studio. Platforma MSBuild je úplně transparentní z hlediska toho, jak zpracovává a sestavuje software. Vývojáři proto mohou připravovat a sestavovat produkty v laboratorních prostředích, kde není nainstalována aplikace Visual Studio. Platforma MSBuild je součástí rozhraní .NET Framework. Postupem popsaným v této části sestavíte pomocí platformy MSBuild nové balíčky nasazení pro aplikaci Order Service (Objednávková služba). Tyto příkazy je možné přidat do skriptu prostředí Windows PowerShell, a automatizovat tak sestavení. Další informace o platformě MSBuild naleznete v článku Přehled platformy MSBuild (https://go.microsoft.com/fwlink/?LinkId=123876).
Spuštěním následujícího příkazu v prostředí Windows PowerShell přiřaďte proměnnou s názvem MSBuildPath k úplné cestě spustitelného souboru platformy MSBuild v adresáři rozhraní .NET Framework. Tento příkaz určí cestu na základě řetězcové hodnoty InstallPath v klíči registru HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full.
$MSBuildPath = "$($(gp -Path HKLM:\Software\Microsoft\'NET Framework Setup'\NDP\v4\Full).InstallPath)MSBuild.exe"
Spuštěním následujícího příkazu v prostředí Windows PowerShell sestavte balíček nasazení pro projekt OrderProcessingService.
.$MSBuildPath 'C:\DublinTutorial\OrderServiceSolution\Completed\OrderProcessingService\OrderProcessingService.csproj' /T:Package /P:PackageLocation='C:\DublinTutorial\PS_DeploymentPackages\OrderProcessingService.zip'
Spuštěním následujícího příkazu v prostředí Windows PowerShell sestavte balíček nasazení pro projekt OrderWorkflowService.
.$MSBuildPath 'C:\DublinTutorial\OrderServiceSolution\Completed\OrderWorkflowService\OrderWorkflowService.csproj' /T:Package /P:PackageLocation='C:\DublinTutorial\PS_DeploymentPackages\OrderWorkflowService.zip'
Spuštěním následujícího příkazu v prostředí Windows PowerShell sestavte balíček nasazení pro projekt ShippingService.
.$MSBuildPath 'C:\DublinTutorial\OrderServiceSolution\Completed\ShippingService\ShippingService.csproj' /T:Package /P:PackageLocation='C:\DublinTutorial\PS_DeploymentPackages\ShippingService.zip'
Ověřte, zda byly v adresáři C:\DublinTutorial\PS_DeploymentPackages vytvořeny všechny tři soubory ZIP, jak je ukázáno níže:
PS C:\> dir C:\DublinTutorial\PS_DeploymentPackages\*.zip Directory: C:\DublinTutorial\PS_DeploymentPackages Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 11/11/2009 5:40 PM 13836 OrderProcessingService.zip -a--- 11/11/2009 5:41 PM 22717 OrderWorkflowService.zip -a--- 11/11/2009 5:41 PM 25177 ShippingService.zip
Pokud jste nesestavili aplikaci OrderClient, která slouží službám jako klient, sestavte ji spuštěním následujícího příkazu v prostředí Windows PowerShell:
.$MSBuildPath 'C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\OrderClient.csproj'
Vytvoření webu OrderService_PS a fondu aplikací
V této části pomocí nástroje pro správu služby IIS Appcmd.exe vytvoříte web a fond aplikací. Použijete zprostředkovatele prostředí Windows PowerShell k určení cesty k nástroji Appcmd.exe pomocí proměnné prostředí SystemRoot. Chcete-li zjistit, jak to funguje, zadejte v prostředí Windows PowerShell následující příkaz:
$env:SYSTEMROOT
Měl by se zobrazit kořenový adresář systému.
Následujícím postupem vytvořte web OrderService_PS a fond aplikací OrderServiceAppPool_PS. Tyto příkazy je možné přidat do skriptu nasazení prostředí Windows PowerShell, a automatizovat tak postup.
Zadáním následujícího příkazu v prostředí Windows PowerShell vytvořte fond aplikací OrderServiceAppPool_PS nakonfigurovaný tak, aby používal verzi 4 rozhraní .NET Framework.
.$env:SystemRoot\System32\inetsrv\appcmd.exe add apppool /Name:OrderServiceAppPool_PS -managedRuntimeVersion:v4.0
Ověřte, že se v následujícím výstupu příkazu neobjeví žádné chyby.
APPPOOL object "OrderServiceAppPool_PS" added
Zadáním následujícího příkazu v prostředí Windows PowerShell vytvořte nový web s názvem OrderService_PS, který bude nakonfigurován tak, aby používal port 95 a aby jeho obsah byl uložen v adresáři C:\DublinTutorial\OrderService_PS.
.$env:SystemRoot\System32\inetsrv\appcmd.exe add site /name:OrderService_PS /bindings:http/*:95: /physicalPath:C:\DublinTutorial\OrderService_PS
Ověřte, že se v následujícím výstupu příkazu neobjeví žádné chyby.
SITE object "OrderService_PS" added APP object "OrderService_PS/" added VDIR object "OrderService_PS/" added
Zadáním následujícího příkazu v prostředí Windows PowerShell nakonfigurujte web OrderService_PS tak, aby používal fond aplikací OrderServiceAppPool_PS jako výchozí fond aplikací.
.$env:SystemRoot\System32\inetsrv\appcmd.exe set site OrderService_PS /applicationDefaults.applicationPool:OrderServiceAppPool_PS
Ověřte, že se v následujícím výstupu příkazu neobjeví žádné chyby.
SITE object "OrderService_PS" changed
Nasazení jednotlivých webových služeb pomocí nástroje Web Deployment a prostředí Windows PowerShell
V této části nasadíte webové služby pomocí nástroje Web Deployment na nový web s názvem OrderService_PS. V tomto kurzu používáme příponu _PS, abychom naznačili, že byl web vytvořen pomocí prostředí Windows PowerShell. Příkazy uvedené v této části by bylo možné přidat do skriptu nasazení prostředí Windows PowerShell určeného k nasazení aplikace Order Service (Objednávková služba). Další informace o nástroji Web Deployment naleznete v článku Nástroj Web Deployment (https://go.microsoft.com/fwlink/?LinkId=154601).
Spuštěním následujícího příkazu v prostředí Windows PowerShell přiřaďte proměnnou s názvem MSDeployPath k úplné cestě nástroje Web Deployment.
$MSDeployPath = "$env:ProgramFiles\IIS\Microsoft Web Deploy\msdeploy.exe"
Spuštěním následujícího příkazu v prostředí Windows PowerShell nasaďte balíček OrderProcessingService na web OrderService_PS:
.$MSDeployPath -verb:sync -source:package=C:\DublinTutorial\PS_DeploymentPackages\OrderProcessingService.zip -dest:auto -setParam:Name=`"IIS Web Application Name`"`,value=OrderService_PS/OrderProcessingService
Ověřte, že se výsledný výstup podobá následujícímu a že neobsahuje chyby.
Info: Updating createApp (OrderService_PS/OrderProcessingService). Info: Adding contentPath (OrderService_PS/OrderProcessingService). Info: Adding dirPath (OrderService_PS/OrderProcessingService). Info: Adding child dirPath (OrderService_PS/OrderProcessingService\bin). Info: Adding child filePath (OrderService_PS/OrderProcessingService\bin\OrderProcessingService.dll). Info: Adding child filePath (OrderService_PS/OrderProcessingService\OrderProcessing.svc). Info: Adding child filePath (OrderService_PS/OrderProcessingService\Web.config). Total changes: 7 (6 added, 0 deleted, 1 updated, 0 parameters changed, 22099 bytes copied)
Spuštěním následujícího příkazu v prostředí Windows PowerShell nasaďte balíček OrderWorkflowService na web OrderService_PS:
.$MSDeployPath -verb:sync -source:package=C:\DublinTutorial\PS_DeploymentPackages\OrderWorkflowService.zip -dest:auto -setParam:Name=`"IIS Web Application Name`"`,value=OrderService_PS/OrderWorkflowService
Ověřte, že se výsledný výstup podobá následujícímu a že neobsahuje chyby.
Info: Updating createApp (OrderService_PS/OrderWorkflowService). Info: Adding contentPath (OrderService_PS/OrderWorkflowService). Info: Adding dirPath (OrderService_PS/OrderWorkflowService). Info: Adding child dirPath (OrderService_PS/OrderWorkflowService\bin). Info: Adding child filePath (OrderService_PS/OrderWorkflowService\bin\OrderWorkflowService.dll). Info: Adding child filePath (OrderService_PS/OrderWorkflowService\OrderWorkflow.xamlx). Info: Adding child filePath (OrderService_PS/OrderWorkflowService\Web.config). Total changes: 7 (6 added, 0 deleted, 1 updated, 0 parameters changed, 84412 bytes copied)
Spuštěním následujícího příkazu v prostředí Windows PowerShell nasaďte balíček ShippingService na web OrderService_PS:
.$MSDeployPath -verb:sync -source:package=C:\DublinTutorial\PS_DeploymentPackages\ShippingService.zip -dest:auto -setParam:Name=`"IIS Web Application Name`"`,value=OrderService_PS/ShippingService
Ověřte, že se výsledný výstup podobá následujícímu a že neobsahuje chyby.
Info: Updating createApp (OrderService_PS/ShippingService). Info: Adding contentPath (OrderService_PS/ShippingService). Info: Adding dirPath (OrderService_PS/ShippingService). Info: Adding child dirPath (OrderService_PS/ShippingService\bin). Info: Adding child filePath (OrderService_PS/ShippingService\bin\ShippingService.dll). Info: Adding child filePath (OrderService_PS/ShippingService\bin\ShippingService.pdb). Info: Adding child filePath (OrderService_PS/ShippingService\Shipping.svc). Info: Adding child filePath (OrderService_PS/ShippingService\Web.config). Total changes: 8 (7 added, 0 deleted, 1 updated, 0 parameters changed, 68029 bytes copied)
Testování jednotlivých webových služeb v prostředí Windows PowerShell
V této části zjistíte pomocí jednoduché funkce skriptu, zda můžete procházet webovými službami.
Zadáním následujícího příkazu v prostředí Windows PowerShell vytvořte pomocí programu Poznámkový blok nový pomocný skript s názvem Utility.ps1.
NotePad Utility.ps1
Až se program Poznámkový blok spustí a zeptá se, zda chcete vytvořit soubor, klikněte na tlačítko Ano.
Zkopírujte následující funkci skriptu a vložte ji do souboru programu Poznámkový blok.
#=======================================================# #=== ===# #=== Performs a simple browse test to a web service. ===# #=== ===# #=======================================================# function BrowseWebService($address) { trap {return $false;} $WebClient = New-Object System.Net.WebClient $content = $WebClient.DownloadString($address) $content.Contains("You have created a service.") }
Tato funkce pomocí třídy System.Net.WebClient analyzuje textovou odpověď na žádost o zadanou adresu služby. Pokud odpověď obsahuje řetězec "You have created a service.", vrátí tento test procházení hodnotu $true. Jinak vrátí hodnotu $false.
Ukončete program Poznámkový blok a kliknutím na tlačítko Uložit uložte soubor Utility.ps1.
Spuštěním následujícího příkazu v prostředí Windows PowerShell importujte pomocný skript jako modul do aktuální relace prostředí Windows PowerShell.
Import-Module .\Utility.ps1
Zadáním následujících tří příkazů v prostředí Windows PowerShell otestujte všechny tři webové služby aplikace Order Service (Objednávková služba).
BrowseWebService "https://localhost:95/OrderProcessingService/OrderProcessing.svc" BrowseWebService "https://localhost:95/OrderWorkflowService/OrderWorkflow.xamlx" BrowseWebService "https://localhost:95/ShippingService/Shipping.svc"
Ověřte, že každý příkaz BrowseWebService ohlásil hodnotu True, jak je ukázáno níže.
PS C:\> BrowseWebService "https://localhost:95/OrderWorkflowService/OrderWorkflow.xamlx" True PS C:\> BrowseWebService "https://localhost:95/OrderProcessingService/OrderProcessing.svc" True PS C:\> BrowseWebService "https://localhost:95/ShippingService/Shipping.svc" True
Rekapitulace
V této lekci jste aktualizovali konfigurační soubory jednotlivých projektů, aby používaly nové adresy koncových bodů. Pak jste v prostředí Windows PowerShell vytvořili nový web a fond aplikací. Nakonec jste pomocí prostředí Windows PowerShell sestavili a nasadili jednotlivé projekty služeb na nový web.
Další kroky
V části Lekce 3: Konfigurace objednávkové služby v prostředí Windows PowerShell budete pomocí rutin technologie AppFabric pro prostředí Windows PowerShell konfigurovat databáze monitorování a trvalosti pro aplikaci Order Service, kterou jste nasadili v této lekci.
Další odkazy
Koncepty
Lekce 1: Začínáme s rutinami technologie Windows Server AppFabric pro prostředí Windows PowerShell
Lekce 3: Konfigurace objednávkové služby v 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