Lição 3: configurando o Order Service com o Windows PowerShell

Tempo para conclusão: 20 minutos

Objetivo: Demonstrar usando os cmdlets Windows Server AppFabric para Configurar Aplicativos.

Finalidade: Os cmdlets AppFabric no Windows PowerShell representam uma ferramenta útil que os desenvolvedores e administradores podem usar para automatizar a configuração e o gerenciamento de aplicativos que incluem serviços WCF e/ou WF. Nesta lição, você reconfigurará o monitoramento e a persistência para o aplicativo Serviço de Pedidos.

Pré-requisitos

Observe os seguintes pré-requisitos Antes de começar esta lição:

Procedimento

Você realizará os seguintes procedimentos para reconfigurar o aplicativo Serviço de Pedidos com o Windows PowerShell:

  1. Crie e inicialize os repositórios de monitoramento e persistência para o aplicativo.

  2. Crie as cadeias de conexão para o repositório.

  3. Configure o serviço OrderWorkflow para o aplicativo Serviço de Pedidos para usar o novo repositório de monitoramento e de persistência.

  4. Habilite o protocolo net.pipe para o aplicativo.

Criando e inicializando os bancos de dados de monitoramento e de persistência

Nesta seção, você irá criar e inicializar um novo repositório de monitoramento e de persistência para uso com o aplicativo Serviço de Pedidos.

Criando e inicializando o repositório de monitoramento

  1. Execute o comando a seguir no Windows PowerShell.

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

    Observe que o nome do repositório tem um sufixo “_PS” representando que você fez isso com o Windows PowerShell. Portanto, você não tem quaisquer conflitos de nomes com o tutorial de interface do usuário.

    As permissões definidas para o repositório baseiam-se nas permissões padrão do AppFabric e nos nomes de entidade.

    No comando anterior, você conectou o objeto de repositório resultante ao alias fl para o cmdlet Format-List do Windows PowerShell. É mais fácil ver o resultado da operação usando o formato de lista em vez do formato de tabela padrão, pois o formato padrão trunca o resultado.

  2. Verifique se a saída no Windows PowerShell depois de executar este comando parece semelhante ao seguinte sem erros.

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

Um novo repositório de monitoramento chamado OrderService_PS foi criado e inicializado no monitoramento.

Criando e inicializando o repositório de persistência

Para inicializar o repositório OrderService_PS com tabelas e artefatos relacionados a persistência, use o cmdlet Initialize-ASPersistenceDatabase. Esse cmdlet aceita três parâmetros relacionados à segurança:

  • -Admins

  • -Readers

  • -Users

Nesse tutorial, você está novamente usando os nomes de entidade padrão do AppFabric. Ao usar esses parâmetros com esse cmdlet, você deve usar os nomes de entidade completos. Para fazer isso, você usará o provedor de ambiente para que o Windows PowerShell resolva o nome do computador local. Para ver como isso funciona, digite o comando a seguir no Windows PowerShell.

$env:COMPUTERNAME

O resultado do comando exibe o nome do computador local de acordo com a variável de ambiente COMPUTERNAME. Você usará essa abordagem para fornecer o nome principal completo das entidades padrão do AppFabric.

Para criar e inicializar o repositório de persistência para o aplicativo Serviço de Pedidos

  1. Digite o comando a seguir no Windows PowerShell para inicializar o repositório OrderService_PS para persistência usando os nomes de entidade padrão do AppFabric.

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

    Observe o parâmetro –Confirm:$false que você passou. Isso permite que você ignore os prompts para confirmar as alterações ao repositório.

  2. Verifique se o resultado é semelhante ao exibido abaixo sem erros.

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

O repositório OrderService_PS agora é inicializado para uso com persistência.

Criando a cadeia de conexão

Para configurar o aplicativo para usar o novo repositório de monitoramento e de persistência que acabou de criar, você deve criar uma cadeia de conexão para o novo repositório. Atualmente, o Módulo do ApplicationServer no Windows PowerShell não inclui um cmdlet para fazer isso. Usaremos então um exemplo de função de script baseado no código de exemplo no exemplo Configuração com script do AppFabric que mostra como você pode fazer isso. Para obter mais informações sobre esse exemplo, consulte Exemplos.

Para criar a cadeia de conexão para o novo repositório

  1. No Windows PowerShell, digite o comando a seguir para abrir Utility.ps1.

    Notepad Utility.ps1
    
  2. Copie e cole o código a seguir na parte inferior do arquivo no Bloco de Notas.

    #=========================================================================================================#
    #===                                                                                                   ===#
    #=== 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. Feche o Bloco de Notas e, em seguida, clique em Salvar para salvar Utility.ps1

  4. No Windows PowerShell, digite o comando a seguir para adicionar o script Utility.ps1 como um módulo para a sessão atual do Windows PowerShell.

    import-module .\Utility.ps1
    
  5. No Windows PowerShell, você pode usar a função UpdateConnectionString para adicionar a nova cadeia de conexão. Você deve escolher a fonte de dados correta com base na instalação do Microsoft SQL Server ou SQL Server Express no computador usado para esse tutorial.

    • Se você tiver somente o SQL Server Express instalado, use o seguinte comando, que usa o SQL Server Express no computador local como a fonte de dados:

      UpdateConnectionString "OrderService_PS" "Data Source=.\SQLEXPRESS;Initial Catalog=OrderService_PS;Integrated Security=True"
      
    • Se você instalou SQL Server, use o seguinte comando, que usa SQL Server como a fonte de dados:

      UpdateConnectionString "OrderService_PS" "Data Source=localhost;Initial Catalog=OrderService_PS;Integrated Security=True"
      
  6. Verifique a nova cadeia de conexão executando o Gerenciador do IIS e clique duas vezes no applet Monitorando configuração do banco de dados. Isso deve exibir a nova cadeia de conexão denominada OrderService_PS juntamente com as cadeias de conexão padrão. O status da nova cadeia de conexão deve ser Inicializado.

Agora, o aplicativo Serviço de Pedidos pode ser configurado por AppFabric para usar o repositório OrderService_PS para monitoramento e persistência.

Configurando o aplicativo para usar o banco de dados de monitoramento e de persistência

Para configurar site Order Service_PS para usar o novo repositório para monitoramento

  1. No Windows PowerShell, digite o comando a seguir para configurar o monitoramento para que o site OrderService_PS use o novo repositório.

    Set-ASAppMonitoring -SiteName OrderService_PS -MonitoringLevel HealthMonitoring -ConnectionStringName OrderService_PS
    
  2. Verifique se sua saída da execução do comando parece semelhante ao seguinte, que exibe as configurações de monitoramento aplicadas ao site.

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

Para configurar site OrderService_PS use também o novo repositório de persistência

  1. No Windows PowerShell, execute o comando a seguir.

    Set-ASAppSqlServicePersistence -SiteName OrderService_PS -ConnectionStringName OrderService_PS
    
  2. Verifique se sua saída da execução do comando parece semelhante à saída a seguir, que exibe as configurações de persistência aplicadas ao site.

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

Habilitando o protocolo net.pipe

O protocolo net.pipe já deverá estar habilitado para o aplicativo da Web OrderWorkflowService se você tiver seguido a etapa na Lição 3: Configurando o aplicativo HRApplicationServices do Tutorial usando a interface do Windows Server AppFabric. No entanto, esta seção mostra como habilitar o protocolo com o Windows PowerShell. O Módulo do ApplicationServer no Windows PowerShell não expõe um cmdlet para esta operação. Em vez disso, a operação é executada usando Appcmd.exe. Para obter mais informações sobre Appcmd.exe, consulte o seguinte link: Appcmd.exe (a página pode estar em inglês) (https://go.microsoft.com/fwlink/?LinkId=169337).

Para habilitar o protocolo net.pipe para o aplicativo da Web OrderWorkflowService, execute o comando a seguir no Windows PowerShell.

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

Appcmd.exe reportará o êxito da operação no Windows PowerShell da maneira a seguir.

APP object "OrderService_PS/OrderWorkflowService" changed

O que acabei de fazer?

Nesta lição, você criou um novo repositório de monitoramento e de persistência usando cmdlets do AppFabric. Você também criou uma nova cadeia de conexão no arquivo Web.config e configurou o site OrderService_PS para usar o novo repositório para monitoramento e persistência. Você pode adicionar todos esses comandos a um script do Windows PowerShell para automatizar a configuração do aplicativo.

Próximas etapas

Na Lição 4: monitorando o Order Service com o Windows PowerShell, você aprenderá a monitorar aplicativos usando cmdlets do AppFabric.

Consulte também

Conceitos

Lição 1: introdução aos cmdlets do Windows Server AppFabric para Windows PowerShell
Lição 2: implantando o aplicativo Order Service com o Windows PowerShell
Lição 4: monitorando o Order Service com o Windows PowerShell
Lição 5: rastreando o fluxo de trabalho com o Windows PowerShell

  2011-12-05