Cómo configurar proveedores de almacenes de instancias, consultas y control
Una vez finalizado el desarrollo de un proveedor de almacén, de consultas o de control, debe registrar el proveedor mediante los pasos descritos en Cómo registrar proveedores personalizados. El programa de instalación del proveedor debe realizar unos pasos similares a los que se describen en la lista siguiente:
Ejecutar los archivos de script que crean el almacén de instancias físico e instalar los ensamblados de proveedor en el equipo.
Agregar una definición para el proveedor de almacén de instancias en el archivo Web.config raíz.
Agregar una definición para el almacén de instancias en un archivo Web.config raíz.
Configurar el comportamiento del almacén de instancias de un servicio en el archivo de configuración asociado con el servicio.
En el resto de esta tema se describe el procedimiento para agregar una definición de proveedor, una definición de almacén y el comportamiento de almacén que usa el almacén para almacenar un archivo de configuración.
Definición del proveedor de almacén de instancias
Debe definirse un proveedor de almacén de instancias en el archivo Web.config raíz para cada tipo de almacén de instancias que se planee usar con Windows Server AppFabric. La definición de proveedor de almacén de instancias contiene los siguientes parámetros:
Nota
El archivo web.config del equipo se puede encontrar en dos lugares distintos: en la carpeta <unidad>\Windows\Microsoft.NET\Framework\v4.0.30319\Config y en el directorio donde se encuentra la aplicación.
Nombre. Especifica el nombre del proveedor de almacén de instancias. Este parámetro es obligatorio.
Proveedor de almacén. Especifica el nombre completo del tipo que implementa la clase abstracta InstanceStoreProvider y el conjunto que contiene el tipo. Este parámetro es obligatorio.
Proveedor de consultas. Especifica el nombre completo del tipo que implementa la clase abstracta InstanceQueryProvider y el conjunto que contiene el tipo. Este parámetro es obligatorio. Si el almacén no implementa un proveedor de consultas, se puede especificar una cadena vacía como valor para este parámetro.
Proveedor de control. Especifica el nombre completo del tipo que implementa la clase abstracta InstanceControlProvider y el conjunto que contiene el tipo. Este parámetro es obligatorio. Si el almacén no implementa un proveedor de control, se puede especificar una cadena vacía como valor para este parámetro.
El programa de instalación de AppFabric agrega una definición de proveedor de almacén para el proveedor de almacén de instancias del almacén de instancias de flujo de trabajo de SQL, tal como se muestra en el ejemplo siguiente.
<configuration>
<microsoft.applicationServer>
<persistence>
<instanceStoreProviders>
<add name="sqlStoreProvider"
storeProvider="Microsoft.ApplicationServer.StoreProvider.Sql.SqlWorkflowInstanceStoreFactory, Microsoft.ApplicationServer.StoreProvider, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
queryProvider="Microsoft.ApplicationServer.StoreManagement.Sql.Query.SqlInstanceQueryProvider, Microsoft.ApplicationServer.StoreManagement, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
controlProvider="Microsoft.ApplicationServer.StoreManagement.Sql.Control.SqlInstanceControlProvider, Microsoft.ApplicationServer.StoreManagement, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</instanceStoreProviders>
</persistence>
</microsoft.applicationServer>
</configuration>
Durante la instalación del proveedor de almacén de instancias personalizado, debe agregar la definición del proveedor del almacén en el archivo Web.config raíz, de forma similar al modo en que el programa de instalación de AppFabric agrega la definición del proveedor de instancias SQL. Como puede verse en el ejemplo anterior, la definición del proveedor es parte de la sección de configuración de Windows Server AppFabric (Microsoft.ApplicationServer). Por lo tanto, debe instalar AppFabric antes de instalar los proveedores de almacenes personalizados. Si instala un proveedor de almacén antes de instalar AppFabric debe agregar manualmente las secciones de configuración de proveedores de almacenes correspondientes en el archivo Web.config raíz. Y si desinstala AppFabric, se eliminará toda la sección de Microsoft.ApplicationServer. Es posible que desee quitar el proveedor de almacén de instancias personalizado (no la definición, sino el ensamblado que contiene el tipo de proveedor de almacén) antes o después de desinstalar AppFabric.
Definición del almacén de instancias
Una definición del almacén de instancias define un almacén de un tipo específico. Una definición del almacén contiene los parámetros siguientes:
Nombre. Especifica el nombre del almacén de instancias. Este parámetro es obligatorio. El valor de este parámetro puede ser una cadena vacía.
Descripción. Especifica la descripción del almacén de instancias. Este parámetro es opcional. El valor predeterminado para este parámetro es una cadena vacía.
Proveedor de almacén. Especifica el nombre del proveedor del almacén para el almacén de instancias. Este parámetro es obligatorio.
Atributos adicionales. Especifica atributos adicionales que se representan en forma de pares nombre-valor. Debe definirse una dirección de almacén (como una cadena de conexión para el proveedor de almacén de instancias SQL) mediante uno de estos parámetros. De lo contrario, el Servicio de administración de flujos de trabajo (WMS) no podrá conectarse al almacén.
En el ejemplo siguiente se muestran los almacenes de instancias definidos en el archivo Web.config raíz. Deberá agregar los almacenes de instancias personalizados de forma similar.
<configuration>
<microsoft.applicationServer>
<persistence>
<instanceStores>
<add name="storeA"
provider="sqlStoreProvider"
connectionStringName="storeA-str" />
<add name="storeB"
provider="sqlStoreProvider"
connectionStringName="storeB-str" />
<add name="storeC"
provider="MyStoreProvider"
MyAddressStringName="storeC-str"
value1="rrr"
value2="sss"
value3="ttt" />
</instanceStores>
</persistence>
</microsoft.applicationServer>
</configuration>
Un almacén definido en un ámbito superior se hereda automáticamente en los ámbitos inferiores. Se puede quitar la definición de almacén heredada de un ámbito mediante el elemento <quitar /> o </borrar>.
Extensión del comportamiento del almacén de instancias
Debe definir un elemento de extensión del comportamiento para el almacén de instancias, de modo que el usuario pueda asociar un servicio con su almacén de instancias. El programa de instalación de AppFabric agrega el siguiente elemento de extensión del comportamiento en el archivo machine.config, para que pueda usar sqlWorkflowInstanceStoreBehavior con su servicio. Debe agregar la definición del comportamiento de su almacén de forma similar durante la instalación del proveedor de almacén.
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name="sqlWorkflowInstanceStore" type="System.ServiceModel.Activities.Configuration.SqlWorkflowInstanceStoreElement, System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</behaviorExtensions>
</extensions>
</system.serviceModel>
Las extensiones de comportamiento y los controladores de sección, por ejemplo, SqlWorkflowInstanceStore y workflowInstanceControl en el archivo machine.config, definen un comportamiento sin nombre con configuración predeterminada a nivel de raíz. Agregue extensiones de comportamiento y controladores de sección específicos del tipo de almacén en el archivo machine.config. El programa de instalación de AppFabric agrega automáticamente la extensión de comportamiento para los comportamientos SqlWorkflowInstanceStore y WorkflowInstanceControl.
Configuración de servicios para usar el comportamiento y el almacén
Para habilitar la persistencia de un servicio, debe definir un comportamiento del almacén de instancias en el archivo Web.config asociado con una aplicación o servicio, y asociar el servicio al comportamiento. En el ejemplo siguiente se muestra una definición de ejemplo del comportamiento sqlWorkflowInstanceStore. El valor de connectionStringName se configura en una definición del almacén de instancias que, a la vez, apunta a una cadena de conexión.
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name=”myServiceBehavior”>
<sqlWorkflowInstanceStore
connectionStringName="storeA-str"
instanceCompletionAction=”DeleteAll”
instanceLockedExceptionAction=”NoRetry”
hostLockRenewalPeriod=”00:00:30”
runnableInstanceDetectionPeriod=”00:00:10” />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Configuración de almacenes de instancias de flujo de trabajo de SQL
El programa de instalación de Windows Server AppFabric crea una definición del proveedor de almacén de instancias para el almacén de instancias de flujo de trabajo SQL, en el archivo Web.config raíz. Puede usar la herramienta de configuración Windows Server AppFabric que realiza las funciones siguientes:
Crea una definición de un almacén de instancias de flujo de trabajo SQL en el archivo Web.config. Esta definición contiene una cadena de conexión que hace referencia a la base de datos ApplicationServerExtension.
Crea un almacén de instancias físico, una base de datos de SQL Server denominada ApplicationServerExtensions.
Instala el Servicio de administración de flujos de trabajo (WMS) como servicio de Windows. Agrega la sección de configuración WMS predeterminada al archivo Web.config raíz, con una configuración que indica a WMS que descubra automáticamente los almacenes de instancias.
2011-12-05