Partage via


Leçon 3 : configuration de l'application OrderService avec Windows PowerShell

Durée : 20 minutes

Objectif : montrer l'utilisation des cmdlets de Windows Server AppFabric pour configurer des applications.

Fonction : les cmdlets de AppFabric pour Windows PowerShell constituent un outil utile qui permet aux développeurs et aux administrateurs d'automatiser la configuration et la gestion des applications incluant les services WCF et/ou WF. Dans cette leçon, vous allez reconfigurer la surveillance et la persistance pour l'application Order Service.

Conditions préalables

Les conditions suivantes sont requises avant de commencer cette leçon :

Procédure

La reconfiguration de l'application Order Service à l'aide de Windows PowerShell implique les étapes suivantes :

  1. création et initialisation des magasins de surveillance et de persistance pour l'application ;

  2. création des chaînes de connexion pour le magasin ;

  3. configuration du service OrderWorkflow pour l'application Order Service pour utiliser le nouveau magasin de surveillance et de persistance ;

  4. activation du protocole net.pipe pour l'application.

Création et initialisation des bases de données de surveillance et de persistance

Dans cette section, vous allez créer et initialiser des magasins de surveillance et de persistance à des fins d'utilisation avec l'application Order Service.

Création et initialisation du magasin de surveillance

  1. Exécutez la commande suivante dans Windows PowerShell.

    Initialize-ASMonitoringSqlDatabase -Database "OrderService_PS" -Admins "AS_Administrators","NT AUTHORITY\LOCAL SERVICE" -Readers "AS_Observers" -Writers "BUILTIN\IIS_IUSRS" | fl *
    

    Le préfixe PS figurant dans le nom du magasin indique que cette procédure a été effectuée à l'aide de Windows PowerShell. Cela permet d'éviter les conflits de noms avec le didacticiel relatif à l'interface utilisateur.

    Les autorisations définies pour le magasin sont basées sur les autorisations et les noms principaux par défaut de AppFabric.

    Dans la commande précédente, vous avez redirigé l'objet de résultats du magasin vers l'alias fl pour la cmdlet Format-List de Windows PowerShell. L'observation des résultats de l'opération est plus facile sous forme de liste que de tableau (qui tronque les résultats).

  2. Vérifiez que votre sortie dans Windows PowerShell après l'exécution de cette commande est similaire à ce qui suit, sans erreur.

    Server           : SERVER1
    Database         : OrderService_PS
    ConnectionString : Data Source=SERVER1;Initial Catalog=OrderService_PS;Integrated Security=True
    

Un magasin de surveillance nommé OrderService_PS a été créé et initialisé à des fins de surveillance.

Création et initialisation du magasin de persistance

Pour initialiser le magasin OrderService_PS avec les tables et les artefacts de persistance, utilisez la cmdlet Initialize-ASPersistenceDatabase. Celle-ci accepte trois paramètres de sécurité :

  • Admins ;

  • -Readers ;

  • -Users.

Dans le cadre de ce didacticiel, vous utilisez de nouveau les noms principaux de AppFabric par défaut. Lorsque vous utilisez ces paramètres avec cette cmdlet, vous devez utiliser les noms principaux complets. Pour ce faire, vous utiliserez le fournisseur d'environnement pour Windows PowerShell pour résoudre le nom de l'ordinateur local. Pour voir comment cela fonctionne, entrez la commande suivante dans Windows PowerShell.

$env:COMPUTERNAME

Le résultat de cette commande affiche le nom de l'ordinateur local en fonction de la variable d'environnement COMPUTERNAME. Vous utiliserez cette méthode pour fournir le nom principal complet des principaux de AppFabric par défaut.

Pour créer et initialiser le magasin de persistance pour l'application Order Service

  1. Entrez la commande suivante dans Windows PowerShell pour initialiser le magasin OrderService_PS à des fins de persistance à l'aide des noms principaux de AppFabric par défaut.

    Initialize-ASPersistenceSqlDatabase -Database "OrderService_PS" -Admins "$($env:COMPUTERNAME)\AS_Administrators" -Readers "$($env:COMPUTERNAME)\AS_Observers" -Users "BUILTIN\IIS_IUSRS" –Confirm:$false | fl *
    

    Notez le paramètre –Confirm:$false transmis. Il permet d'ignorer les invites demandant de confirmer les modifications apportées au magasin.

  2. Vérifiez que le résultat est similaire à ce qui suit, sans erreur.

    Server           : SERVER1
    Database         : OrderService_PS
    ConnectionString : Data Source=SERVER1;Initial Catalog=OrderService_PS
    

Le magasin OrderService_PS est désormais initialisé à des fins d'utilisation de la persistance.

Création de la chaîne de connexion

Pour configurer l'application pour utiliser le nouveau magasin de surveillance et de persistance que vous venez de créer, vous devez créer une chaîne de connexion pour celui-ci. Actuellement, le module Module ApplicationServer pour Windows PowerShell n'inclut pas de cmdlet permettant d'effectuer cette opération. Nous utiliserons donc un exemple de script basé sur l'exemple de code décrit dans la rubrique Configuration d'AppFabric à l'aide de scripts qui montre comment procéder. Pour plus d'informations sur cet exemple, consultez la rubrique Exemples.

Pour créer la chaîne de connexion pour le nouveau magasin

  1. Dans Windows PowerShell, tapez la commande suivante pour ouvrir Utility.ps1.

    Notepad Utility.ps1
    
  2. Copiez et collez le code suivant en bas du fichier dans le Bloc-notes.

    #=========================================================================================================#
    #===                                                                                                   ===#
    #=== 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)
    }
    
  3. Fermez le Bloc-notes et cliquez sur Enregistrer pour enregistrer Utility.ps1

  4. Dans Windows PowerShell, entrez la commande suivante pour ajouter le script Utility.ps1 en tant que module pour la session Windows PowerShell actuelle.

    import-module .\Utility.ps1
    
  5. Dans Windows PowerShell, utilisez la fonction UpdateConnectionString pour ajouter la nouvelle chaîne de connexion. Vous devez sélectionner la source de données adéquate en fonction de l'installation de Microsoft SQL Server ou de SQL Server Express sur l'ordinateur utilisé pour ce didacticiel.

    • Si seul SQL Server Express est installé, utilisez la commande suivante, qui utilise SQL Server Express sur l'ordinateur local comme source de données :

      UpdateConnectionString "OrderService_PS" "Data Source=.\SQLEXPRESS;Initial Catalog=OrderService_PS;Integrated Security=True"
      
    • Si vous avez installé SQL Server, utilisez la commande suivante, qui utilise SQL Server comme source de données :

      UpdateConnectionString "OrderService_PS" "Data Source=localhost;Initial Catalog=OrderService_PS;Integrated Security=True"
      
  6. Vérifiez la nouvelle chaîne de connexion en exécutant le Gestionnaire des services Internet, puis double-cliquez sur l'applet Configuration de la base de données de surveillance. La nouvelle chaîne de connexion nommée OrderService_PS ainsi que les chaînes de connexion par défaut doivent s'afficher. L'état de la nouvelle chaîne de connexion doit être Initialisé.

L'application Order Service peut désormais être configurée par AppFabric pour utiliser le magasin OrderService_PS à des fins de surveillance et de persistance.

Configuration de l'application pour utiliser la base de données de surveillance et de persistance

Pour configurer le site Web Order Service_PS pour utiliser le nouveau magasin à des fins de surveillance

  1. Dans Windows PowerShell, entrez la commande suivante pour configurer la surveillance pour que le site Web OrderService_PS utilise le nouveau magasin.

    Set-ASAppMonitoring -SiteName OrderService_PS -MonitoringLevel HealthMonitoring -ConnectionStringName OrderService_PS
    
  2. Vérifiez que la sortie de la commande est similaire à ce qui suit, c'est-à-dire qu'elle affiche les paramètres de surveillance appliqués au site 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          : /
    

Pour configurer le site Web OrderService_PS pour utiliser également le nouveau magasin à des fins de persistance

  1. Dans Windows PowerShell, exécutez la commande suivante.

    Set-ASAppSqlServicePersistence -SiteName OrderService_PS -ConnectionStringName OrderService_PS
    
  2. Vérifiez que la sortie de la commande est similaire à ce qui suit, c'est-à-dire qu'elle affiche les paramètres de persistance appliqués au site Web.

    ConnectionString              :
    ConnectionStringName          : OrderService_PS
    HostLockRenewalPeriod         : 00:00:20
    InstanceCompletionAction      : DeleteNothing
    InstanceEncodingOption        : GZip
    InstanceLockedExceptionAction : BasicRetry
    AuthorizedWindowsGroup        : AS_Administrators
    IsLocal                       : True
    BehaviorName                  :
    

Activation du protocole net.pipe

Si vous avez suivi l'étape de la Leçon 3 : configuration de l'application HRApplicationServices du Didacticiel utilisant l'interface de Windows Server AppFabric, le protocole net.pipe doit déjà être activé pour l'application Web OrderWorkflowService. Toutefois, cette section vous indique la procédure d'activation du protocole à l'aide de Windows PowerShell. Le module Module ApplicationServer pour Windows PowerShell n'expose pas de cmdlet pour cette opération. À la place, l'opération est effectuée à l'aide d'Appcmd.exe. Pour plus d'informations sur cet exécutable, consultez le lien suivant : Appcmd.exe (https://go.microsoft.com/fwlink/?LinkId=169337).

Pour activer le protocole net.pipe pour l'application Web OrderWorkflowService, exécutez la commande suivante dans Windows PowerShell.

.$env:SystemRoot\System32\inetsrv\appcmd.exe set app "OrderService_PS/OrderWorkflowService" /enabledProtocols:"http,net.pipe"

Appcmd.exe signalera la réussite de l'opération dans Windows PowerShell, comme suit.

APP object "OrderService_PS/OrderWorkflowService" changed

Actions effectuées

Dans cette leçon, vous avez créé un magasin de surveillance et de persistance à l'aide des cmdlets de AppFabric. Vous avez également créé une chaîne de connexion dans le fichier Web.config, puis configuré le site Web OrderService_PS Web pour utiliser le nouveau magasin à des fins de surveillance et de persistance. Vous pouvez ajouter toutes ces commandes à un script Windows PowerShell pour automatiser la configuration de l'application.

Étapes suivantes

Surveiller les applications à l'aide des cmdlets de AppFabric lors de la Leçon 4 : surveillance de l'application OrderService avec Windows PowerShell.

Voir aussi

Concepts

Leçon 1 : prise en main des cmdlets de Windows Server AppFabric pour Windows PowerShell
Leçon 2 : déploiement 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

  2011-12-05