Freigeben über


Lektion 2: Bereitstellen der Auftragsdienstanwendung mit Windows PowerShell

Veranschlagte Zeit: 25 Minuten

Lernziel: Erlernen der Vorgehensweise zum Bereitstellen von Anwendungen, die WCF- und/oder WF-Dienste enthalten, in IIS.

Zweck: Diese Übungseinheit zeigt eine Beispielvorgehensweise für die Verwendung von Windows PowerShell zum Erstellen eines Skripts für die Bereitstellung mit dem Webbereitstellungstool. Sie stellen die Order Service-Anwendung auf einer Website namens OrderService_PS erneut bereit.

Voraussetzungen

Beachten Sie die folgenden Voraussetzungen:

Verfahren

Sie führen die folgenden Schritte als Teil des Vorgangs zur erneuten Bereitstellung für die Order Service-Anwendung aus:

  1. Vorbereiten der Konfigurationsdateien für die Bereitstellung

  2. Erstellen der Bereitstellungspakete mithilfe von MSBuild mit Windows PowerShell

  3. Erstellen der Website OrderService_PS und des Anwendungspools

  4. Bereitstellen jedes Webdiensts mit dem Webbereitstellungstool und Windows PowerShell

  5. Testen jedes Webdiensts mit Windows PowerShell

Vorbereiten der Konfigurationsdateien für die Bereitstellung

Sie verwenden Windows PowerShell zum erneuten Bereitstellen der Order Service-Anwendung auf einer neuen Website mithilfe von Port 95. In diesem Abschnitt aktualisieren Sie die Endpunktadressen in den Konfigurationsdateien vor der Bereitstellung mit den neuen Portinformationen.

  1. Führen Sie den folgenden Befehl in Windows PowerShell aus, um die Datei app.config für den Auftragsclient zu öffnen.

    notepad C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\app.config
    

    Ersetzen Sie den Abschnitt client durch den folgenden Abschnitt 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>
    

    Schließen Sie Editor, und klicken Sie auf Speichern, wenn Sie dazu aufgefordert werden, die Änderungen zu speichern.

  2. Führen Sie den folgenden Befehl in Windows PowerShell aus, um die Datei Web.config für den Dienst „Order Processing Service“ zu öffnen.

    notepad C:\DublinTutorial\OrderServiceSolution\Completed\OrderProcessingService\Web.config
    

    Ersetzen Sie den Abschnitt client durch den folgenden Abschnitt 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>
    

    Schließen Sie Editor, und klicken Sie auf Speichern, wenn Sie dazu aufgefordert werden, die Änderungen zu speichern.

  3. Führen Sie den folgenden Befehl in Windows PowerShell aus, um die Datei Web.config für den Auftragsworkflowdienst zu öffnen.

    notepad C:\DublinTutorial\OrderServiceSolution\Completed\OrderWorkflowService\Web.config
    

    Ersetzen Sie den Abschnitt client durch den folgenden Abschnitt 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>
    

    Schließen Sie Editor, und klicken Sie auf Speichern, wenn Sie dazu aufgefordert werden, die Änderungen zu speichern.

  4. Führen Sie den folgenden Befehl in Windows PowerShell aus, um die Datei Web.config für den Versanddienst zu öffnen.

    notepad C:\DublinTutorial\OrderServiceSolution\Completed\ShippingService\Web.config
    

    Ersetzen Sie den Abschnitt client durch den folgenden Abschnitt 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>
    

    Schließen Sie Editor, und klicken Sie auf Speichern, wenn Sie dazu aufgefordert werden, die Änderungen zu speichern.

Erstellen von Bereitstellungspaketen mithilfe von MSBuild mit Windows PowerShell

Das Microsoft-Buildmodul (MSBuild) ist die Buildplattform für Microsoft und Visual Studio. MSBuild ist vollständig transparent hinsichtlich der Verarbeitung und Erstellung von Software. Das Modul ermöglicht Entwicklern das Orchestrieren und Erstellen von Produkten in Buildlaborumgebungen, in denen Visual Studio nicht installiert ist. MSBuild ist als Komponente von .NET Framework enthalten. Sie führen die in diesem Abschnitt beschriebenen Schritte aus, um MSBuild zum Erstellen neuer Bereitstellungspakete für die Order Service-Anwendung zu verwenden. Diese Befehle können auch einem Windows PowerShell-Skript hinzugefügt werden, um den Buildvorgang zu automatisieren. Weitere Informationen zu MSBuild finden Sie unter Übersicht über MSBuild (https://go.microsoft.com/fwlink/?LinkId=123876).

  1. Führen Sie in Windows PowerShell den folgenden Befehl aus, um dem vollständigen Pfad der ausführbaren MSBuild-Datei im Verzeichnis .NET Framework eine Variable namens MSBuildPath zuzuweisen. Dieser Befehl ermittelt den Pfad basierend auf dem Wert des Zeichenfolgewerts InstallPath unter dem Registrierungsschlüssel 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. Führen Sie den folgenden Befehl in Windows PowerShell aus, um das Bereitstellungspaket für das Projekt OrderProcessingService zu erstellen:

    .$MSBuildPath 'C:\DublinTutorial\OrderServiceSolution\Completed\OrderProcessingService\OrderProcessingService.csproj' /T:Package /P:PackageLocation='C:\DublinTutorial\PS_DeploymentPackages\OrderProcessingService.zip'
    
  3. Führen Sie den folgenden Befehl in Windows PowerShell aus, um das Bereitstellungspaket für das Projekt OrderWorkflowService zu erstellen:

    .$MSBuildPath 'C:\DublinTutorial\OrderServiceSolution\Completed\OrderWorkflowService\OrderWorkflowService.csproj' /T:Package /P:PackageLocation='C:\DublinTutorial\PS_DeploymentPackages\OrderWorkflowService.zip'
    
  4. Führen Sie den folgenden Befehl in Windows PowerShell aus, um das Bereitstellungspaket für das Projekt ShippingService zu erstellen:

    .$MSBuildPath 'C:\DublinTutorial\OrderServiceSolution\Completed\ShippingService\ShippingService.csproj' /T:Package /P:PackageLocation='C:\DublinTutorial\PS_DeploymentPackages\ShippingService.zip'
    
  5. Vergewissern Sie sich, dass alle drei ZIP-Dateien im Verzeichnis C:\DublinTutorial\PS_DeploymentPackages wie unten gezeigt erstellt wurden

    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. Wenn Sie die Anwendung OrderClient nicht erstellt haben, die als Client für die Dienste verwendet wird, führen Sie den folgenden Befehl in Windows PowerShell aus, um die Anwendung OrderClient zu erstellen:

    .$MSBuildPath 'C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\OrderClient.csproj'
    

Erstellen der Website „OrderService_PS“ und des Anwendungspools

In diesem Abschnitt verwenden Sie das Verwaltungstool Appcmd.exe für IIS zum Erstellen der Website und des Anwendungspools. Sie verwenden den Umgebungsanbieter für Windows PowerShell, um auf den Pfad zu Appcmd.exe mithilfe der Umgebungsvariablen SystemRoot zu verweisen. Geben Sie den folgenden Befehl in Windows PowerShell ein, um zu sehen, wie dies funktioniert:

$env:SYSTEMROOT

Die sich ergebende Ausgabe sollte das Systemstammverzeichnis anzeigen.

Führen Sie die unten beschriebenen Schritte aus, um die Website OrderService_PS und den Anwendungspool OrderServiceAppPool_PS zu erstellen. Diese Befehle können auch einem Windows PowerShell-Bereitstellungsskript für Automatisierung hinzugefügt werden.

  1. Geben Sie in Windows PowerShell den folgenden Befehl ein, um den Anwendungspool OrderServiceAppPool_PS zu erstellen, der für die Verwendung von Version 4 von .NET Framework konfiguriert ist.

    .$env:SystemRoot\System32\inetsrv\appcmd.exe add apppool /Name:OrderServiceAppPool_PS -managedRuntimeVersion:v4.0
    

    Vergewissern Sie sich, dass der Befehl zur folgenden Ausgabe führt und keine Fehler aufweist.

    APPPOOL object "OrderServiceAppPool_PS" added
    
  2. Geben Sie den folgenden Befehl in Windows PowerShell ein, um eine neue Website namens OrderService_PS zu erstellen, die für die Verwendung von Port 95 und zum Speichern des Inhalts im Verzeichnis C:\DublinTutorial\OrderService_PS konfiguriert ist.

    .$env:SystemRoot\System32\inetsrv\appcmd.exe add site /name:OrderService_PS /bindings:http/*:95: /physicalPath:C:\DublinTutorial\OrderService_PS
    

    Vergewissern Sie sich, dass der Befehl zur folgenden Ausgabe führt und keine Fehler aufweist.

    SITE object "OrderService_PS" added
    APP object "OrderService_PS/" added
    VDIR object "OrderService_PS/" added
    
  3. Geben Sie den folgenden Befehl in Windows PowerShell ein, um die Website OrderService_PS für die Verwendung von OrderServiceAppPool_PS als Standardanwendungspool zu konfigurieren.

    .$env:SystemRoot\System32\inetsrv\appcmd.exe set site OrderService_PS /applicationDefaults.applicationPool:OrderServiceAppPool_PS
    

    Vergewissern Sie sich, dass der Befehl zur folgenden Ausgabe führt und keine Fehler aufweist.

    SITE object "OrderService_PS" changed
    

Bereitstellen von Webdiensten mit dem Webbereitstellungstool und Windows PowerShell

In diesem Abschnitt verwenden Sie das Webbereitstellungstool zum Bereitstellen der Webdienste auf einer neuen Website namens OrderService_PS. Dieses Lernprogramm verwendet das Suffix „_PS“ zum Angeben, dass die Website mit Windows PowerShell erstellt wurde. Die in diesem Abschnitt gezeigten Befehle können auch einem Windows PowerShell-Bereitstellungsskript für die Bereitstellung der Order Service-Anwendung hinzugefügt werden. Weitere Informationen zum Webbereitstellungstool finden Sie unter Web Deployment Tool (https://go.microsoft.com/fwlink/?LinkId=154601) (englischsprachig).

  1. Führen Sie in Windows PowerShell den folgenden Befehl aus, um dem vollständigen Pfad des Webbereitstellungstools eine Variable namens MSDeployPath zuzuweisen.

    $MSDeployPath = "$env:ProgramFiles\IIS\Microsoft Web Deploy\msdeploy.exe"
    
  2. Führen Sie den folgenden Befehl in Windows PowerShell aus, um das Paket OrderProcessingService auf der Website OrderService_PS bereitzustellen:

    .$MSDeployPath -verb:sync -source:package=C:\DublinTutorial\PS_DeploymentPackages\OrderProcessingService.zip -dest:auto -setParam:Name=`"IIS Web Application Name`"`,value=OrderService_PS/OrderProcessingService
    

    Vergewissern Sie sich, dass die sich ergebende Ausgabe der folgenden Ausgabe ähnelt und keine Fehler aufweist.

    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. Führen Sie den folgenden Befehl in Windows PowerShell aus, um das Paket OrderWorkflowService auf der Website OrderService_PS bereitzustellen:

    .$MSDeployPath -verb:sync -source:package=C:\DublinTutorial\PS_DeploymentPackages\OrderWorkflowService.zip -dest:auto -setParam:Name=`"IIS Web Application Name`"`,value=OrderService_PS/OrderWorkflowService
    

    Vergewissern Sie sich, dass die sich ergebende Ausgabe der folgenden Ausgabe ähnelt und keine Fehler aufweist.

    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. Führen Sie den folgenden Befehl in Windows PowerShell aus, um das Paket ShippingService auf der Website OrderService_PS bereitzustellen:

    .$MSDeployPath -verb:sync -source:package=C:\DublinTutorial\PS_DeploymentPackages\ShippingService.zip -dest:auto -setParam:Name=`"IIS Web Application Name`"`,value=OrderService_PS/ShippingService
    

    Vergewissern Sie sich, dass die sich ergebende Ausgabe der folgenden Ausgabe ähnelt und keine Fehler aufweist.

    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)
    

Testen der Webdienste mit Windows PowerShell

In diesem Abschnitt verwenden Sie eine einfache Skriptfunktion, um zu überprüfen, ob Sie in der Lage sind, die Webdienste zu durchsuchen.

  1. Geben Sie in Windows PowerShell den folgenden Befehl ein, um Editor zum Erstellen eines neuen Hilfsprogrammskripts namens Utility.ps1 zu verwenden.

    NotePad Utility.ps1
    

    Wenn Editor geöffnet wird und fragt, ob die Datei erstellt werden soll, klicken Sie auf Ja.

  2. Kopieren Sie die folgende Skriptfunktion, und fügen Sie sie in Editor ein.

    #=======================================================#
    #===                                                 ===#
    #=== 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.")
    }
    

    Diese Funktion verwendet die Klasse System.Net.WebClient zum Analysieren der Textantwort auf die Anforderung der angegebenen Dienstadresse. Wenn die Antwort die Zeichenfolge „You have created a service.“ enthält, gibt der Navigationstest $true zurück. Andernfalls wird $false zurückgegeben.

  3. Schließen Sie Editor, und klicken Sie auf Speichern, wenn Sie dazu aufgefordert werden, Utility.ps1 zu speichern.

  4. Importieren Sie das Hilfsprogrammskript als Modul für die aktuelle Windows PowerShell-Sitzung, indem Sie den folgenden Befehl in Windows PowerShell ausführen.

    Import-Module .\Utility.ps1
    
  5. Testen Sie die drei Order Service-Webdienste, indem Sie die folgenden drei Befehle in Windows PowerShell eingeben.

        BrowseWebService "https://localhost:95/OrderProcessingService/OrderProcessing.svc"
    
        BrowseWebService "https://localhost:95/OrderWorkflowService/OrderWorkflow.xamlx"
    
        BrowseWebService "https://localhost:95/ShippingService/Shipping.svc"
    

    Vergewissern Sie sich, dass jeder Befehl BrowseWebService den Wert True wie unten gezeigt zurückgegeben hat.

    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
    

Schritte dieser Übungseinheit

In dieser Übungseinheit haben Sie die Konfigurationsdateien für jedes Projekt so aktualisiert, dass die neuen Endpunktadressen verwendet werden. Anschließend haben Sie eine neue Website und eine Anwendungspool in Windows PowerShell erstellt. Schließlich haben Sie Windows PowerShell zum Erstellen und Bereitstellen jedes Dienstprojekts auf der neuen Website verwendet.

Weitere Schritte

In Lektion 3: Konfigurieren des Auftragsdiensts mit Windows PowerShell verwenden Sie die AppFabric-Cmdlets für Windows PowerShell zum Konfigurieren der Überwachungs- und Persistenzdatenbanken für die in dieser Übungseinheit bereitgestellte Order Service-Anwendung.

Siehe auch

Konzepte

Lektion 1: Erste Schritte mit Windows Server AppFabric-Cmdlets für Windows PowerShell
Lektion 3: Konfigurieren des Auftragsdiensts mit Windows PowerShell
Lektion 4: Überwachen des Auftragsdiensts mit Windows PowerShell
Lektion 5: Nachverfolgen des Workflows mit Windows PowerShell

  2011-12-05