Partage via


Leçon 2 : déploiement de l'application OrderService avec Windows PowerShell

**Durée :**25 minutes

Objectif : découvrir comment déployer des applications incluant des services WCF et/ou WF sur IIS.

Fonction : Cette leçon présente un exemple d'approche de l'utilisation de Windows PowerShell pour effectuer un déploiement par script avec l'outil de déploiement Web. Vous allez redéployer l'application Order Service sur un site Web nommé OrderService_PS.

Conditions préalables

Notez les conditions préalables suivantes :

Procédure

Le processus de redéploiement de l'application Order Service implique les étapes suivantes :

  1. préparation des fichiers de configuration pour le déploiement ;

  2. création des packages de déploiement en utilisant MSBuild avec Windows PowerShell ;

  3. création du site Web OrderService_PS Web et d'un pool d'applications ;

  4. déploiement de chaque service Web avec l'outil de déploiement Web et Windows PowerShell ;

  5. test de chaque service Web avec Windows PowerShell.

Préparation des fichiers de configuration pour le déploiement

Vous allez utiliser Windows PowerShell pour redéployer l'application Order Service sur un nouveau site Web en utilisant le port 95. Dans cette section, vous allez mettre à jour les adresses de point de terminaison dans les fichiers de configuration avec les informations du nouveau port avant le déploiement.

  1. Dans Windows PowerShell, exécutez la commande suivante pour ouvrir le fichier app.config pour le client de commande.

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

    Remplacez la section client par la section client suivante.

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

    Fermez le Bloc-notes, puis cliquez sur Enregistrer lorsque vous êtes invité à enregistrer les modifications.

  2. Dans Windows PowerShell, exécutez la commande suivante pour ouvrir le fichier Web.config pour le service OrderProcessingService.

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

    Remplacez la section client par la section client suivante.

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

    Fermez le Bloc-notes, puis cliquez sur Enregistrer lorsque vous êtes invité à enregistrer les modifications.

  3. Dans Windows PowerShell, exécutez la commande suivante pour ouvrir le fichier Web.config pour le service OrderWorkflowService.

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

    Remplacez la section client par la section client suivante.

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

    Fermez le Bloc-notes, puis cliquez sur Enregistrer lorsque vous êtes invité à enregistrer les modifications.

  4. Dans Windows PowerShell, exécutez la commande suivante pour ouvrir le fichier Web.config pour ShippingService.

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

    Remplacez la section client par la section client suivante.

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

    Fermez le Bloc-notes, puis cliquez sur Enregistrer lorsque vous êtes invité à enregistrer les modifications.

Création des packages de déploiement en utilisant MSBuild avec Windows PowerShell

Microsoft Build Engine (MSBuild) est la plateforme de création pour Microsoft et Visual Studio. MSBuild est totalement transparent sur le plan de la manière dont il traite et crée des logiciels, ce qui permet aux développeurs d'orchestrer et de créer des produits dans des environnements de laboratoire de génération où Visual Studio n'est pas installé. MSBuild est inclus dans .NET Framework. Vous allez procéder de la manière décrite dans cette section pour utiliser MSBuild afin de créer de nouveaux packages de déploiement pour l'application Order Service. Ces commandes pourraient être ajoutées à un script Windows PowerShell pour automatiser la création. Pour plus d’informations sur MSBuild, consultez la page MSBuild Overview (https://go.microsoft.com/fwlink/?LinkId=123876) (en anglais).

  1. Dans Windows PowerShell, exécutez la commande suivante pour affecter une variable nommée MSBuildPath au chemin d'accès complet du fichier exécutable de MSBuild dans le répertoire .NET Framework. Cette commande détermine le chemin d'accès sur la base de la valeur de la chaîne InstallPath sous la clé de Registre 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. Exécutez la commande suivante dans Windows PowerShell pour créer le package de développement pour le projet OrderProcessingService :

    .$MSBuildPath 'C:\DublinTutorial\OrderServiceSolution\Completed\OrderProcessingService\OrderProcessingService.csproj' /T:Package /P:PackageLocation='C:\DublinTutorial\PS_DeploymentPackages\OrderProcessingService.zip'
    
  3. Exécutez la commande suivante dans Windows PowerShell pour créer le package de développement pour le projet OrderWorkflowService :

    .$MSBuildPath 'C:\DublinTutorial\OrderServiceSolution\Completed\OrderWorkflowService\OrderWorkflowService.csproj' /T:Package /P:PackageLocation='C:\DublinTutorial\PS_DeploymentPackages\OrderWorkflowService.zip'
    
  4. Exécutez la commande suivante dans Windows PowerShell pour créer le package de développement pour le projet ShippingService :

    .$MSBuildPath 'C:\DublinTutorial\OrderServiceSolution\Completed\ShippingService\ShippingService.csproj' /T:Package /P:PackageLocation='C:\DublinTutorial\PS_DeploymentPackages\ShippingService.zip'
    
  5. Vérifiez que les trois fichiers zip ont été créés dans le répertoire C:\DublinTutorial\PS_DeploymentPackages, comme illustré ci-dessous :

    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. Si vous n'avez pas créé l'application OrderClient utilisée comme client pour les services, exécutez la commande suivante dans Windows PowerShell pour créer l'application OrderClient :

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

Création du site Web OrderService_PS Web et d'un pool d'applications

Dans cette section, vous allez utiliser l'outil d'administration Appcmd.exe pour IIS pour créer le site Web et un pool d'applications. Vous allez utiliser le fournisseur d'environnement pour Windows PowerShell pour référencer le chemin d'accès de Appcmd.exe à l'aide de la variable d'environnement SystemRoot. Pour voir comment cela fonctionne, entrez la commande suivante dans Windows PowerShell :

$env:SYSTEMROOT

La sortie obtenue doit indiquer le répertoire racine du système.

Procédez de la manière décrite ci-dessous pour créer le site Web OrderService_PS et le pool d'applications OrderServiceAppPool_PS. Ces commandes peuvent également être ajoutées dans un script de déploiement Windows PowerShell à des fins d'automatisation.

  1. Dans Windows PowerShell, entrez la commande suivante pour créer le pool d'applications OrderServiceAppPool_PS configuré pour utiliser la version 4 de .NET Framework.

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

    Vérifiez que la commande produit la sortie suivante sans erreur.

    APPPOOL object "OrderServiceAppPool_PS" added
    
  2. Dans Windows PowerShell, entrez la commande suivante pour créer un site Web nommé OrderService_PS, qui sera configuré pour utiliser le port 95 et stocker son contenu dans le répertoire C:\DublinTutorial\OrderService_PS.

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

    Vérifiez que la commande produit la sortie suivante sans erreur.

    SITE object "OrderService_PS" added
    APP object "OrderService_PS/" added
    VDIR object "OrderService_PS/" added
    
  3. Dans Windows PowerShell, entrez la commande suivante pour configurer le site Web OrderService_PS afin d'utiliser OrderServiceAppPool_PS comme pool d'applications par défaut.

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

    Vérifiez que la commande produit la sortie suivante sans erreur.

    SITE object "OrderService_PS" changed
    

Déploiement des services Web avec l'outil de déploiement Web et Windows PowerShell

Dans cette section, vous allez utiliser l'outil de déploiement Web pour déployer les services Web dans un nouveau site Web nommé OrderService_PS. Ce didacticiel utilise le suffixe « _PS » pour indiquer que le site Web a été créé avec Windows PowerShell. Les commandes présentées dans cette section pourraient être ajoutées à un script de déploiement Windows PowerShell afin de déployer l'application Order Service. Pour plus d'informations sur l'outil de déploiement Web, consultez la page Web Deployment Tool (https://go.microsoft.com/fwlink/?LinkId=154601) (en anglais).

  1. Dans Windows PowerShell, exécutez la commande suivante pour affecter une variable nommée MSDeployPath au chemin d'accès complet de l'outil de déploiement Web.

    $MSDeployPath = "$env:ProgramFiles\IIS\Microsoft Web Deploy\msdeploy.exe"
    
  2. Dans Windows PowerShell, exécutez la commande suivante pour déployer le package OrderProcessingService sur le site 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
    

    Vérifiez que la sortie obtenue est similaire à ce qui suit, sans erreur.

    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. Dans Windows PowerShell, exécutez la commande suivante pour déployer le package OrderWorkflowService sur le site 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
    

    Vérifiez que la sortie obtenue est similaire à ce qui suit, sans erreur.

    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. Dans Windows PowerShell, exécutez la commande suivante pour déployer le package ShippingService sur le site 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
    

    Vérifiez que la sortie obtenue est similaire à ce qui suit, sans erreur.

    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)
    

Test des services Web avec Windows PowerShell

Dans cette section, vous allez utiliser une fonction de script simple pour voir si vous êtes capable de naviguer dans les services Web.

  1. Dans Windows PowerShell, entrez la commande suivante pour utiliser le Bloc-notes pour créer un script d'utilitaire nommé Utility.ps1.

    NotePad Utility.ps1
    

    Lorsque le Bloc-notes démarre et vous demande si vous voulez créer le fichier, cliquez sur Oui.

  2. Copiez et collez la fonction de script suivante dans le Bloc-notes.

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

    Cette fonction utilise la classe System.Net.WebClient pour analyser la réponse texte à la demande de l'adresse de service spécifiée. Si la réponse contient la chaîne « You have created a service », le test de navigation renvoie la valeur $true. Sinon, il renvoie la valeur $false.

  3. Fermez le Bloc-notes, puis cliquez sur Enregistrer lorsque vous êtes invité à enregistrer Utility.ps1.

  4. Importez le script d'utilitaire comme pour la session actuelle de Windows PowerShell en exécutant la commande suivante dans Windows PowerShell.

    Import-Module .\Utility.ps1
    
  5. Testez les trois services Web de l'application Order Service en entrant les trois commandes suivantes dans Windows PowerShell.

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

    Vérifiez que chaque commande BrowseWebService a renvoyé la valeur True, comme illustré ci-dessous.

    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
    

Actions effectuées

Dans cette leçon, vous avez mis à jour les fichiers de configuration pour chaque projet afin d'utiliser les nouvelles adresses de point de terminaison. Vous avez ensuite créé un site Web et un pool d'applications dans Windows PowerShell. Vous avez enfin utilisé Windows PowerShell pour créer et déployer chaque projet de service sur le nouveau site Web.

Étapes suivantes

Utiliser, dans la Leçon 3 : configuration de l'application OrderService avec Windows PowerShell, les cmdlets de AppFabric pour Windows PowerShell afin de configurer les bases de données de surveillance et de persistance pour l'application Order Service déployée au cours de la leçon ci-dessus.

Voir aussi

Concepts

Leçon 1 : prise en main des cmdlets d'AppFabric pour Windows PowerShell
Leçon 3 : configuration de l'application OrderService avec Windows PowerShell
Leçon 4 : surveillance de l'application OrderService avec Windows PowerShell
Leçon 5 : suivi du flux de travail avec Windows PowerShell

  2012-03-05