Partager via


Imbrication de TransactionScope dans un service

Cette rubrique s'applique à Windows Workflow Foundation 4.

Cet exemple se compose de deux scénarios qui s'exécutent, en montrant comment gérer des instances d'activité TransactionScope dans un service. En premier lieu, la transaction est initiée à l'aide de l'activité TransactionScope pour créer une transaction sur le client et TransactedReceiveScope pour recevoir et mesurer l'étendue de la durée de vie de la transaction sur le serveur. Le premier scénario dans le service exécute une activité TransactionScope secondaire pour illustrer l'imbrication des activités TransactionScope dans le service. Le deuxième scénario montre comment les délais d'expiration sont respectés dans les activités TransactionScope imbriquées.

Application cliente

L'application cliente exécute un workflow qui démarre une activité TransactionScope, imprime l'ID de transaction distribuée, envoie un message au serveur, passe la transaction, reçoit la réponse, imprime à nouveau l'ID de transaction distribuée et se termine. Cette opération est effectuée une fois pour chaque scénario de service.

Application serveur

Le projet serveur est hébergé dans WorkflowServiceHost, ce qui crée le point de terminaison sur lequel écouter le message du client. Le workflow est centré sur le TransactedReceiveScope, qui reçoit la transaction passée du client, imprime l'ID de transaction distribuée, puis exécute une deuxième activité TransactionScope. Dans le premier scénario, la transaction est effectuée avec succès. Dans le deuxième scénario, le corps de l'activité TransactionScope est un délai de cinq secondes et le délai d'expiration de la transaction est défini à deux secondes. Lorsque la transaction expire, elle est abandonnée.

Pour exécuter l'exemple

  1. Ouvrez la solution TransactionServiceExample.sln dans Visual Studio 2010.

  2. Pour générer la solution, appuyez sur F6 ou sélectionnez Générer la solution dans le menu Générer.

  3. Une fois que la génération a réussi, cliquez avec le bouton droit sur la solution, puis sélectionnez Définir les projets de démarrage. Dans la boîte de dialogue, sélectionnez Plusieurs projets de démarrage et vérifiez que l'action pour les deux projets est Démarrer.

  4. Appuyez sur F5 ou sélectionnez Démarrer le débogage dans le menu Déboguer. Vous pouvez également appuyer sur CTRL+F5 ou sélectionner Exécuter sans débogage dans le menu Déboguer pour effectuer une exécution sans débogage.

Ee834526.Important(fr-fr,VS.100).gif Remarque :
Les exemples peuvent déjà être installés sur votre ordinateur. Recherchez le répertoire (par défaut) suivant avant de continuer.

<LecteurInstall>:\WF_WCF_Samples

Si ce répertoire n'existe pas, rendez-vous sur la page (éventuellement en anglais) des exemples Windows Communication Foundation (WCF) et Windows Workflow Foundation (WF) pour .NET Framework 4 pour télécharger tous les exemples Windows Communication Foundation (WCF) et WF. Cet exemple se trouve dans le répertoire suivant.

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