Share via


Anidamiento de TransactionScope dentro de un servicio

Este tema es aplicable a Windows Workflow Foundation 4.

Este ejemplo consiste en la ejecución de dos escenarios para mostrar cómo administrar instancias de actividad TransactionScope dentro de un servicio. En primer lugar, la transacción se inicia utilizando la actividad TransactionScope para crear una transacción en el cliente y TransactedReceiveScope para recibir y determinar la duración de la transacción en el servidor. El primer escenario dentro del servicio ejecuta una actividad TransactionScope secundaria para mostrar el anidamiento de las actividades TransactionScope dentro del servicio. El segundo escenario muestra cómo se respetan los tiempos de espera dentro de las actividades TransactionScope anidadas.

Aplicación de cliente

La aplicación cliente ejecuta un flujo de trabajo que inicia una actividad TransactionScope, imprime el Id. de la transacción distribuida, envía un mensaje al servidor, pasa la transacción, recibe la respuesta, imprime de nuevo el Id. de la transacción distribuida y finaliza. Esto lo realiza una vez para cada escenario de servicio.

Servidor de aplicaciones

El proyecto de servidor se hospeda en WorkflowServiceHost, que crea el extremo para escuchar el mensaje del cliente. El flujo de trabajo se centra en TransactedReceiveScope, que recibe la transacción de flujo del cliente, imprime el Id. de la transacción distribuida y, a continuación, ejecuta una segunda actividad TransactionScope. En el primer escenario, la transacción se completa correctamente. En el segundo escenario, el cuerpo de la actividad TransactionScope es un retraso de cinco segundos y el tiempo de espera para la transacción se establece en dos segundos. Cuando la transacción supera el tiempo de espera, se anula.

Para ejecutar el ejemplo

  1. Abra la solución TransactionServiceExample.sln en Visual Studio 2010.

  2. Para compilar la solución, presione F6 o seleccione Generar solución en el menú Generar.

  3. Cuando la compilación se complete correctamente, haga clic con el botón secundario en la solución y seleccione Establecer proyectos de inicio. En el cuadro de diálogo, seleccione Proyectos de inicio múltiples y asegúrese de que la acción para ambos proyectos es Iniciar.

  4. Presione F5 o seleccione Iniciar depuración en el menú Depurar. También, puede presionar CTRL+F5 o seleccionar Iniciar sin depurar en el menú Depurar para realizar la ejecución sin depuración.

Ee834526.Important(es-es,VS.100).gif Nota:
Puede que los ejemplos ya estén instalados en su equipo. Compruebe el siguiente directorio (valor predeterminado) antes de continuar.

<InstallDrive>: \WF_WCF_Samples

Si no existe este directorio, vaya a la página de ejemplos de Windows Communication Foundation (WCF) y Windows Workflow Foundation (WF) Samples para .NET Framework 4 para descargar todos los ejemplos de Windows Communication Foundation (WCF) y WF. Este ejemplo se encuentra en el siguiente directorio.

<InstallDrive>:\WF_WCF_Samples\WF\Basic\Transactions\TRSCompostability