Lección 3: Configuración de Order Service con Windows PowerShell

Tiempo de realización: 20 minutos

Objetivo: mostrar el uso de los cmdlets de Windows Server AppFabric con el fin de configurar las aplicaciones.

Finalidad: los cmdlets de AppFabric para Windows PowerShell son una herramienta de gran utilidad para que programadores y administradores puedan automatizar la administración y configuración de las aplicaciones que incluyen servicios de WCF y/o WF. En esta lección volverá a configurar el seguimiento y la persistencia de la aplicación Order Service.

Requisitos previos

Tenga en cuenta los requisitos previos siguientes antes de comenzar esta lección:

Procedimiento

Conocerá los procedimientos siguientes para volver a configurar la aplicación Order Service con Windows PowerShell:

  1. Crear e inicializar los almacenes de seguimiento y persistencia para la aplicación.

  2. Crear las cadenas de conexión para el almacén.

  3. Configurar el servicio OrderWorkflow para que la aplicación Order Service use el nuevo almacén de seguimiento y persistencia.

  4. Habilitar el protocolo net.pipe para la aplicación.

Creación e inicialización de las bases de datos de seguimiento y persistencia

En esta sección, creará e inicializará un nuevo almacén de seguimiento y un nuevo almacén de persistencia para su uso con la aplicación Order Service.

Creación e inicialización del almacén de seguimiento

  1. Ejecute el siguiente comando desde Windows PowerShell.

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

    Observe que el nombre del almacén proporcionado tiene un sufijo “_PS” que indica que esta operación se ha llevado a cabo con Windows PowerShell. De este modo, no se producen conflictos de nombres con el tutorial de la interfaz de usuario.

    Los permisos establecidos para el almacén se basan en nombres principales y permisos de AppFabric predeterminados.

    En el anterior comando ha canalizado el objeto resultante del almacén fuera del alias fl del cmdlet Format-List de Windows PowerShell. Resulta más cómodo ver el resultado de la operación en el formato de lista, en lugar de en el formato predeterminado de tabla, puesto que este último lo trunca.

  2. Compruebe que los resultados en Windows PowerShell después de ejecutar este comando son similares a los siguientes y que no existen errores.

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

Se ha creado e inicializado un nuevo almacén de seguimiento denominado OrderService_PS para el seguimiento.

Creación e inicialización del almacén de persistencia

Para inicializar el almacén OrderService_PS con tablas y artefactos relacionados con la persistencia, use el cmdlet Initialize-ASPersistenceDatabase. Este cmdlet acepta tres parámetros relacionados con la seguridad:

  • -Admins

  • -Readers

  • -Users

En este tutorial, usará los nombres principales predeterminados de AppFabric. Al usar estos parámetros con este cmdlet, debe usar nombres principales completos. Para ello, usará el proveedor de entorno para Windows PowerShell con el fin de resolver el nombre del equipo local. Para ver cómo funciona este procedimiento, escriba el comando siguiente en Windows PowerShell.

$env:COMPUTERNAME

El resultado de ese comando muestra el nombre del equipo local de acuerdo con la variable de entorno COMPUTERNAME. Se usará este enfoque para proporcionar el nombre principal completo de los principales predeterminados de AppFabric.

Procedimiento para crear e inicializar el almacén de persistencia de la aplicación Order Service

  1. Escriba el siguiente comando en Windows PowerShell para inicializar el almacén OrderService_PS con los nombres principales predeterminados de AppFabric.

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

    Observe el parámetro –Confirm:$false que ha pasado. Esto permite eludir las solicitudes de confirmación de cambios realizados en el almacén.

  2. Compruebe que el resultado es similar al que se muestra a continuación y que no contiene errores.

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

Ahora, el almacén OrderService_PS está inicializado para su uso con persistencia.

Creación de la cadena de conexión

Para configurar la aplicación para que use el nuevo almacén de seguimiento y persistencia que acaba de crear, cree una cadena de conexión para el nuevo almacén. Actualmente, Módulo ApplicationServer para Windows PowerShell no incluye ningún cmdlet para ello. Por tanto, usaremos un ejemplo de función de scripts basado en el código de ejemplo de Configuración mediante scripts de AppFabric que ilustra cómo hacerlo. Para obtener más información sobre este ejemplo, vea Ejemplos.

Procedimiento para crear la cadena de conexión para el nuevo almacén

  1. En Windows PowerShell, escriba el comando siguiente para abrir Utility.ps1.

    Notepad Utility.ps1
    
  2. Copie y pegue el código siguiente en la parte inferior del archivo en el Bloc 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. Cierre el Bloc de notas y, a continuación, haga clic en Guardar para guardar Utility.ps1

  4. En Windows PowerShell, escriba el comando siguiente para agregar el script de Utility.ps1 como un módulo de la sesión de Windows PowerShell actual.

    import-module .\Utility.ps1
    
  5. En Windows PowerShell, use la función UpdateConnectionString para agregar la nueva cadena de conexión. Debe seleccionar el origen de datos correcto en función de si ha instalado Microsoft SQL Server o SQL Server Express en el equipo que se usa para este tutorial.

    • Si sólo ha instalado SQL Server Express, use el comando siguiente, que usa SQL Server Express en el equipo local como origen de datos:

      UpdateConnectionString "OrderService_PS" "Data Source=.\SQLEXPRESS;Initial Catalog=OrderService_PS;Integrated Security=True"
      
    • Si ha instalado SQL Server, use el comando siguiente, que usa SQL Server como origen de datos:

      UpdateConnectionString "OrderService_PS" "Data Source=localhost;Initial Catalog=OrderService_PS;Integrated Security=True"
      
  6. Compruebe la nueva cadena de conexión ejecutando el Administrador de Internet Information Services (IIS) y, a continuación, haga doble clic en el applet Configuración de la base de datos de seguimiento. Esto debe mostrar la nueva cadena de conexión denominada OrderService_PS junto con las cadenas de conexión predeterminadas. El estado de la nueva cadena de conexión debe ser Inicializado.

Ahora, AppFabric puede configurar la aplicación Order Service para que use el almacén OrderService_PS para el seguimiento y la persistencia.

Configuración de la aplicación para que use la base de datos de seguimiento y persistencia

Procedimiento para configurar el sitio web Order Service_PS para que use el nuevo almacén para el seguimiento

  1. En Windows PowerShell, escriba el siguiente comando para configurar el seguimiento del sitio web OrderService_PS para que use el nuevo almacén.

    Set-ASAppMonitoring -SiteName OrderService_PS -MonitoringLevel HealthMonitoring -ConnectionStringName OrderService_PS
    
  2. Compruebe que los resultados de la ejecución del comando son similares a los siguientes, que muestran la configuración de seguimiento aplicada al sitio 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          : /
    

Procedimiento para configurar el sitio web de OrderService_PS para que use también el nuevo almacén para la persistencia

  1. En Windows PowerShell, ejecute el siguiente comando.

    Set-ASAppSqlServicePersistence -SiteName OrderService_PS -ConnectionStringName OrderService_PS
    
  2. Compruebe que los resultados de la ejecución del comando son similares a los siguientes, que muestran la configuración de persistencia aplicada al sitio web.

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

Habilitación del protocolo net.pipe

El protocolo net.pipe debería estar habilitado para la aplicación web OrderWorkflowService si ha seguido las instrucciones de la Lección 3: Configuración de la aplicación HRApplicationServices del Tutorial sobre el uso de la interfaz de Windows Server AppFabric. Sin embargo, en esta sección se muestra cómo habilitar el protocolo con Windows PowerShell. Módulo ApplicationServer para Windows PowerShell no expone un cmdlet para esta operación. En su lugar, la operación se realiza mediante el uso de Appcmd.exe. Para obtener más información acerca de Appcmd.exe, consulte el siguiente vínculo: Appcmd.exe (https://go.microsoft.com/fwlink/?LinkId=169337).

Para habilitar el protocolo net.pipe para la aplicación web OrderWorkflowService, ejecute el siguiente comando en Windows PowerShell.

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

Appcmd.exe notificará el éxito de la operación en Windows PowerShell como sigue.

APP object "OrderService_PS/OrderWorkflowService" changed

¿Qué acabo de hacer?

En esta lección, ha creado un nuevo almacén de seguimiento y persistencia mediante los cmdlets de AppFabric. También ha creado una nueva cadena de conexión en el archivo Web.config y, a continuación, ha configurado el sitio web de OrderService_PS para que use el nuevo almacén para el seguimiento y la persistencia. Puede agregar estos comandos a un script de Windows PowerShell para automatizar la configuración de la aplicación.

Pasos siguientes

En la Lección 4: Seguimiento de Order Services con Windows PowerShell obtendrá información sobre cómo realizar el seguimiento de las aplicaciones mediante los cmdlets de AppFabric.

Vea también

Conceptos

Lección 1: Introducción a los cmdlets de Windows Server AppFabric para Windows PowerShell
Lección 2: Implementación de la aplicación Order Service con Windows PowerShell
Lección 4: Seguimiento de Order Services con Windows PowerShell
Lección 5: Seguimiento del flujo de trabajo con Windows PowerShell

  2011-12-05