Lezione 3: configurazione del servizio OrderService con Windows PowerShell

Tempo di completamento: 20 minuti

Obiettivo: illustrare l'utilizzo dei cmdlet di Microsoft AppFabric 1.1 per Windows Server per configurare le applicazioni.

Scopo: i cmdlet di AppFabric per Windows PowerShell offrono a sviluppatori e amministratori un utile strumento per automatizzare la configurazione e la gestione delle applicazioni che includono i servizi WCF e/o WF. In questa lezione viene spiegato come riconfigurare il monitoraggio e i salvataggi permanenti per l'applicazione OrderService.

Prerequisiti

Prima di procedere, verificare che siano soddisfatti i prerequisiti seguenti:

Procedura

Per riconfigurare l'applicazione OrderService con Windows PowerShell, attenersi alle procedure seguenti:

  1. Creare e inizializzare archivi di monitoraggio e salvataggi permanenti per l'applicazione.

  2. Creare le stringhe di connessione per gli archivi.

  3. Configurare il servizio OrderWorkflow per consentire all'applicazione OrderService di utilizzare il nuovo archivio di monitoraggio e salvataggi permanenti.

  4. Abilitare il protocollo net.pipe per l'applicazione.

Creazione e inizializzazione dei database di monitoraggio e salvataggi permanenti

In questa sezione vengono creati e inizializzati nuovi archivi di monitoraggio e salvataggi permanenti da utilizzare con l'applicazione OrderService.

Creazione e inizializzazione di un nuovo archivio di monitoraggio

  1. Eseguire da Windows PowerShell il comando riportato di seguito.

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

    Si noti che il nome assegnato all'archivio possiede il suffisso "_PS", a indicare che è stato creato con Windows PowerShell. Questo consente di evitare conflitti di denominazione con l'esercitazione relativa all'interfaccia utente.

    Le autorizzazioni impostate per l'archivio sono basate sui nomi delle entità e delle autorizzazioni predefinite di AppFabric.

    Nel comando precedente l'oggetto archivio ottenuto è stato reindirizzato all'alias fl per il cmdlet Format-List di Windows PowerShell. Per semplificare la visualizzazione del risultato di questa operazione, ricorrere al formato elenco anziché al formato tabella predefinito, poiché quest'ultimo tronca il risultato.

  2. Verificare che l'output presente in Windows PowerShell dopo l'esecuzione del comando sia simile a quello riportato di seguito senza errori.

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

Il nuovo archivio di monitoraggio OrderService_PS risulta creato e inizializzato.

Creazione e inizializzazione di un nuovo archivio dei salvataggi permanenti

Per inizializzare l'archivio OrderService_PS con tabelle e artefatti relativi al salvataggio permanente, utilizzare il cmdlet Initialize-ASPersistenceDatabase. Questo cmdlet accetta tre parametri relativi alla sicurezza:

  • -Admins

  • -Readers

  • -Users

Anche per questa esercitazione vengono utilizzati i nomi delle entità predefinite di AppFabric. Quando con il cmdlet si applicano questi parametri, è necessario utilizzare i nomi completi delle entità. Per eseguire questa operazione, occorre avvalersi di un provider di ambiente che consenta a Windows PowerShell di risolvere il nome del computer locale. Per accertarne il funzionamento, immettere in Windows PowerShell il comando riportato di seguito.

$env:COMPUTERNAME

Il risultato di tale comando visualizza il nome del computer locale sulla base della variabile di ambiente NOMECOMPUTER. Questo approccio consente di fornire il nome principale completo delle entità predefinite di AppFabric.

Per creare e inizializzare l'archivio dei salvataggi permanenti per l'applicazione OrderService

  1. Immettere il comando seguente in Windows PowerShell per inizializzare l'archivio OrderService_PS dei salvataggi permanenti utilizzando i nomi delle entità predefinite di AppFabric.

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

    Si noti il parametro –Confirm:$false passato. Questo consente di ignorare le richieste di conferma delle modifiche apportate all'archivio.

  2. Verificare che il risultato sia simile a quello riportato di seguito senza errori.

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

L'archivio OrderService_PS risulta inizializzato e pronto per i salvataggi permanenti.

Creazione di stringhe di connessione

Per configurare l'applicazione in modo che utilizzi il nuovo archivio di monitoraggio e salvataggi permanenti appena completato, è necessario creare una stringa di connessione per l'archivio stesso. Attualmente Modulo ApplicationServer per Windows PowerShell non include un cmdlet in grado di effettuare questa operazione. Verrà quindi utilizzato un esempio di funzione di script basato sul codice presente nell'esempio Configurazione di AppFabric mediante script che indica come eseguire questa operazione. Per ulteriori informazioni su questo esempio, vedere Esempi.

Per creare la stringa di connessione per il nuovo archivio

  1. In Windows PowerShell digitare il comando riportato di seguito per aprire Utility.ps1.

    Notepad Utility.ps1
    
  2. Copiare e incollare il codice riportato di seguito alla fine del file in Blocco note.

    #=========================================================================================================#
    #===                                                                                                   ===#
    #=== 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. Chiudere il Blocco note e fare clic su Salva per salvare Utility.ps1

  4. In Windows PowerShell immettere il comando seguente per aggiungere lo script Utility.ps1 come modulo per la sessione corrente di Windows PowerShell.

    import-module .\Utility.ps1
    
  5. In Windows PowerShell utilizzare la funzione UpdateConnectionString per aggiungere una nuova stringa di connessione. È necessario scegliere l'origine dati corretta a seconda se nel computer utilizzato per questa esercitazione è stato installato Microsoft SQL Server o SQL Server Express.

    • Se è stato installato solo SQL Server Express, ricorrere al comando seguente, che utilizza SQL Server Express come origine dati sul computer locale:

      UpdateConnectionString "OrderService_PS" "Data Source=.\SQLEXPRESS;Initial Catalog=OrderService_PS;Integrated Security=True"
      
    • Se è stato installato SQL Server, ricorrere al comando seguente, che come origine dati utilizza SQL Server:

      UpdateConnectionString "OrderService_PS" "Data Source=localhost;Initial Catalog=OrderService_PS;Integrated Security=True"
      
  6. Effettuare una verifica della nuova stringa di connessione eseguendo Gestione Internet Information Services (IIS), quindi fare doppio clic sull'applet per la configurazione del database di monitoraggio. La nuova stringa di connessione OrderService_PS viene visualizzata insieme alle stringhe di connessione predefinite. Lo stato della nuova stringa di connessione è Inizializzata.

L'applicazione OrderService può ora essere configurata da AppFabric in modo da utilizzare l'archivio OrderService_PS per monitoraggio e salvataggi permanenti.

Configurazione dell'applicazione per utilizzare il database di monitoraggio e salvataggi permanenti

Per configurare il sito Web Order Service_PS in modo che utilizzi il nuovo archivio per il monitoraggio

  1. In Windows PowerShell immettere il comando seguente per configurare il monitoraggio in modo che il sito Web OrderService_PS utilizzi il nuovo archivio.

    Set-ASAppMonitoring -SiteName OrderService_PS -MonitoringLevel HealthMonitoring -ConnectionStringName OrderService_PS
    
  2. Verificare che l'output ottenuto eseguendo il comando sia simile al seguente, che mostra le impostazioni di monitoraggio applicate al sito 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          : /
    

Per configurare il sito Web OrderService_PS Web in modo che utilizzi anche il nuovo archivio per i salvataggi permanenti

  1. In Windows PowerShell eseguire il comando seguente.

    Set-ASAppSqlServicePersistence -SiteName OrderService_PS -ConnectionStringName OrderService_PS
    
  2. Verificare che l'output ottenuto eseguendo il comando sia simile al seguente, che mostra le impostazioni di salvataggio permanente applicate al sito Web.

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

Abilitazione del protocollo net.pipe

Il protocollo net.pipe per l'applicazione Web OrderWorkflowService dovrebbe risultare già abilitato se è stato effettuato il passaggio indicato nella Lesson 3: Configuring the Order Service dell'Esercitazione OrderService. Tuttavia, in questa sezione viene spiegato come abilitare il protocollo con Windows PowerShell. Modulo ApplicationServer per Windows PowerShell non espone un cmdlet per questa operazione, che viene invece eseguita utilizzando Appcmd.exe. Per ulteriori informazioni su Appcmd.exe, vedere il collegamento seguente: Appcmd.exe (https://go.microsoft.com/fwlink/?LinkId=169337).

Per abilitare il protocollo net.pipe per l'applicazione Web OrderWorkflowService, eseguire il seguente comando in Windows PowerShell.

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

Appcmd.exe segnala come segue l'esito dell'operazione in Windows PowerShell.

APP object "OrderService_PS/OrderWorkflowService" changed

In questa lezione è stato creato un nuovo archivio di monitoraggio e salvataggi permanenti utilizzando i cmdlet di AppFabric. È stata inoltre creata una nuova stringa di connessione nel file Web.config e il sito Web OrderService_PS è stato configurato in modo da utilizzare il nuovo archivio per monitoraggio e salvataggi permanenti. Tutti questi comandi possono essere aggiunti a uno script Windows PowerShell per automatizzare la configurazione delle applicazioni.

Passaggi successivi

Nella Lesson 4: Monitoring the Order Service with Windows PowerShell verrà spiegato come monitorare le applicazioni utilizzando i cmdlet di AppFabric.

Vedere anche

Concetti

Lezione 5: rilevamento del flusso di lavoro con Windows PowerShell

Altre risorse

Lesson 1: Getting Started with AppFabric Cmdlets for Windows PowerShell
Lesson 2: Deploying the Order Service Application with Windows PowerShell
Lesson 3: Configuring the Order Service with Windows PowerShell
Lesson 4: Monitoring the Order Service with Windows PowerShell

  2012-03-05