Sdílet prostřednictvím


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:

Postup

Během procesu nového nasazení aplikace Order Service (Objednávková služba) provedete následující kroky:

  1. Příprava konfiguračních souborů k nasazení

  2. Sestavení balíčků nasazení pomocí platformy MSBuild v prostředí Windows PowerShell

  3. Vytvoření webu OrderService_PS a fondu aplikací

  4. Nasazení jednotlivých webových služeb pomocí nástroje Web Deployment a prostředí Windows PowerShell

  5. 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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).

  1. 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"
    
  2. 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'
    
  3. 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'
    
  4. 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'
    
  5. 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
    
  6. 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.

  1. 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
    
  2. 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
    
  3. 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).

  1. 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"
    
  2. 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)
    
  3. 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)
    
  4. 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.

  1. 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.

  2. 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.

  3. Ukončete program Poznámkový blok a kliknutím na tlačítko Uložit uložte soubor Utility.ps1.

  4. 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
    
  5. 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