Partager via


Accès à OperationContext

Cette rubrique s'applique à Windows Workflow Foundation 4.

Cet exemple montre comment les activités de messagerie (Receive et Send) peuvent être utilisées avec une activité d'étendue personnalisée pour accéder à Current et attacher ou récupérer un en-tête de message personnalisé dans un message sortant ou entrant.

Montre

Activités de messagerie, ISendMessageCallback, IReceiveMessageCallback.

Discussion

Cet exemple montre comment utiliser des points d'extensibilité (ISendMessageCallback, IReceiveMessageCallback) dans les activités de messagerie pour accéder à Current. Les rappels sont inscrits dans le runtime du workflow sous la forme d'une implémentation d'IExecutionProperty qui est choisie par les activités de messagerie lors de l'exécution. Toute activité de messagerie de la même étendue que cette implémentation IExecutionProperty est affectée. Plus particulièrement, cet exemple utilise une activité d'étendue personnalisée pour appliquer le comportement de rappel. ISendMessageCallback est utilisé dans le workflow client pour inclure l'Id du workflow en tant que MessageHeader sortant. Cet en-tête est ensuite choisi dans le service à l'aide d'IReceiveMessageCallback et la valeur de l'en-tête est imprimée sur la console.

Pour configurer, générer et exécuter l'exemple

  1. Cet exemple expose un service de workflow à l'aide de points de terminaison HTTP. Pour exécuter cet exemple, des listes de contrôle d'accès (ACL) d'URL appropriées doivent être ajoutées (pour plus d'informations, consultez Configuration de HTTP et HTTPS), en exécutant Visual Studio en tant qu'administrateur ou en exécutant la commande suivante à une invite de commandes avec élévation de privilèges pour ajouter les listes de contrôle d'accès (ACL) appropriées. Vérifiez que vos domaine et nom d'utilisateur sont substitués.

    netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%
    
  2. Une fois les listes de contrôle d'accès (ACL) d'URL ajoutées, effectuez les étapes suivantes.

    1. Générez la solution.

    2. Définissez plusieurs projets de démarrage en cliquant avec le bouton droit sur la solution, puis en sélectionnant Définir les projets de démarrage.

    3. Ajoutez Service et Client (dans cet ordre) en tant que plusieurs projets de démarrage.

    4. Exécutez l'application. La console cliente affiche un workflow qui est exécuté deux fois et la fenêtre Service affiche l'ID d'instance de ces workflows.

Ee834517.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\Scenario\Services\Accessing Operation Context