Compartir a través de


Archivos de configuración del flujo de trabajo

Una aplicación host de Windows Workflow Foundation puede usar un archivo de configuración para controlar el comportamiento de un objeto WorkflowRuntime.

Crear las secciones de configuración

Para usar un archivo de configuración para configurar el motor en tiempo de ejecución de flujo de trabajo, debe crear primero un archivo .config para su aplicación (app.config) o servicio web (web.config). En este archivo de configuración, cree una sección de configuración tal y como se muestra en el siguiente código XML.

<configuration>
    <configSections>
        <section name="WorkflowRuntime" type="System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken 31bf3856ad364e35" />
    </configSections>
</configuration>

Definir las secciones de configuración

Su archivo de configuración puede contener varias secciones de configuración, pero se puede usar sólo una sección al crear instancias de un objeto WorkflowRuntime.

Una vez declarada la sección de configuración, agregue la información de configuración que el tiempo de ejecución usará para esa sección. Observe que el nombre de la etiqueta de la sección coincide con el nombre dado en el atributo de nombre que se especifica en el ejemplo anterior. En este ejemplo, la etiqueta de la sección es WorkflowRuntime.

<WorkflowRuntime Name="SampleApplication">
    <CommonParameters>
        <add name="ConnectionString" value="Initial Catalog=WorkflowStore;Data Source=localhost;Integrated Security=SSPI;" />
    </CommonParameters>
    <Services>
        <add type="System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" maxQueuedWorkItems="20"/>
        <add type="System.Workflow.Runtime.Hosting.SharedConnectionWorkflowTransactionService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />    
        <add type="System.Workflow.Runtime.Hosting.SqlWorkflowPersistenceService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" UnloadOnIdle="false"/>
    </Services>
</WorkflowRuntime>

La sección de configuración WorkflowRuntime tiene un atributo único. Name se usa para especificar el nombre de este WorkflowRuntime. El nombre se usa en resultado para distinguir este tiempo de ejecución de otros tiempo de ejecución que se pueden estar ejecutando en el sistema, por ejemplo, en contadores de rendimiento.

La sección de configuración contiene dos elementos anidados. El elemento CommonParameters define cualquier parámetro que se usa globalmente en varios servicios, por ejemplo ConnectionString al usar SharedConnectionWorkflowCommitWorkBatchService. El segundo elemento enumera los servicios individuales que se configuran para este motor en tiempo de ejecución de flujo de trabajo. Si un servicio toma los parámetros de configuración adicionales, éstos pueden estar incluidos como atributos, como se muestra con los atributos maxQueuedWorkItems y UnloadOnIdle del ejemplo anterior.

Usar el archivo de configuración

El archivo de configuración controla el comportamiento de un objeto WorkflowRuntime. Puede agregar mediante programación los servicios al crear una instancia de un objeto WorkflowRuntime o puede usar un archivo de configuración como se muestra en este tema. Para usar una sección de configuración definida en un archivo de configuración, pase el nombre de la sección de configuración como un parámetro al constructor WorkflowRuntime.

El ejemplo siguiente muestra cómo crear una instancia WorkflowRuntime mediante la sección de configuración WorkflowRuntime creada anteriormente.

WorkflowRuntime runtime = new WorkflowRuntime("WorkflowRuntime");
Dim runtime As New WorkflowRuntime("WorkflowRuntime")

Opciones de configuración adicionales

Las secciones siguientes describen cómo puede usar los archivos de configuración para habilitar cierta funcionalidad en su flujo de trabajo, como volver a confirmar un lote de trabajo o registrar los datos de flujo de trabajo.

Habilitar los intentos para los lotes de trabajo

Puede habilitar los servicios que confirman los lotes de trabajo en los almacenes de persistencia, como DefaultWorkflowCommitWorkBatchService y SqlWorkflowPersistenceService, para reintentar su transacción estableciendo la propiedad EnableRetries como se muestra en el ejemplo siguiente:

<WorkflowRuntime Name="SampleApplication" UnloadOnIdle="false">
    <CommonParameters>
        <add name="ConnectionString" value="Initial Catalog=WorkflowStore;Data Source=localhost;Integrated Security=SSPI;" />
        <add name="EnableRetries" value="True" />
    </CommonParameters>
    <Services>
        <add type="System.Workflow.Runtime.Hosting.SqlWorkflowPersistenceService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" EnableRetries="False" /> 
     </Services>
</WorkflowRuntime>

Observe que la propiedad EnableRetries se puede establecer en un nivel global (como se muestra en la sección CommonParameters ) o para servicios individuales que admiten EnableRetries (como se muestra en la sección Servicios ). En este ejemplo, todos los servicios que admiten EnableRetries habilitarán esa funcionalidad, excepto SqlWorkflowPersistenceService.

Los servicios siguientes admiten EnableRetries:

  • DefaultWorkflowCommitWorkBatchService

  • SharedConnectionWorkflowCommitWorkBatchService

  • SqlWorkflowPersistenceService

  • SqlTrackingService

Para obtener más información, vea previamente la propiedad EnableRetries en cada una de las clases mostradas.

Para obtener información general acerca de cómo reintentar transacciones de lotes de trabajo, consulte Batching State Information in Workflows.

Habilitar el registro del flujo de trabajo

Con el archivo de configuración puede generar información de registro de Windows Workflow Foundation para ayudar a depurar los escenarios. Windows Workflow Foundation usa el formato de configuración introducido en .NET Framework 2.0. Un ejemplo sobre cómo habilitar información de registro para varios espacios de nombres de Windows Workflow Foundation es el siguiente.

<system.diagnostics>
    <switches>
        <add name="System.Workflow LogToFile" value="1" />
        <add name="System.Workflow.Runtime" value="All" />
        <add name="System.Workflow.Runtime.Hosting" value="All" />
        <add name="System.Workflow.Runtime.Tracking" value="All" />
        <add name="System.Workflow.Activities" value="All" />
        <add name="System.Workflow.Activities.Rules" value="All" />       
    </switches>
</system.diagnostics>

En este ejemplo, el primer nodo agregado permite el registro en un archivo. El archivo se crea en su directorio de aplicación host mediante el nombreWorkflowTrace.log. La otra opción es permitir el registro en un TraceListener estableciendo el parámetro de nombre igual a "System.Workflow LogToTraceListener." Al establecerlo, Windows Workflow Foundation enumerará cada TraceListener creado dentro de su aplicación host y les enviará toda la información de registro.

Las líneas restantes del ejemplo mostrado anteriormente le permiten especificar los espacios de nombres para capturar información de registro así como la cantidad de información de la que se realiza un seguimiento. Los valores posibles para el valor de atributo incluyen:

Valor Descripción

Todas

Registra todos los mensajes recibidos

Off

No registra ningún mensaje

Crítico

Sólo registra mensajes considerados críticos

Error

Mensajes de registro crítico y mensajes de error

Advertencia

Mensajes de registro crítico, mensajes de error y mensajes de advertencia

Información

Mensajes de registro crítico, mensajes de advertencia y mensajes de error

Detalles

Mensajes de registro crítico, mensajes de error, mensajes de advertencia, mensajes informativos y mensajes detallados

Consulte también

Referencia

WorkflowRuntime

Otros recursos

How to: Add and Remove Workflow Services
Referencia general sobre Windows Workflow Foundation

Footer image

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.