Partager via


Accès à OperationContext

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

Montre ce qui suit

Activités de messagerie, ISendMessageCallback, IReceiveMessageCallback.

Discussion

Cet exemple montre comment utiliser des points d’extensibilité (ISendMessageCallback) IReceiveMessageCallbackdans les activités de messagerie à accéder Current. Les rappels sont enregistrés dans le runtime de flux de travail en tant qu’implémentation de celle-ci est récupérée par les activités de messagerie lors de IExecutionProperty l’exécution. Toute activité de messagerie dans la même étendue que cette IExecutionProperty implémentation est affectée. En particulier, cet exemple utilise une activité d’étendue personnalisée pour appliquer le comportement de rappel. Il ISendMessageCallback est utilisé dans le flux de travail client pour inclure les flux de Id travail en tant que sortants MessageHeader. Cet en-tête est ensuite récupéré dans le service à l’aide de la IReceiveMessageCallback valeur de l’en-tête imprimée dans la console.

Configurer, générer et exécuter l’exemple

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

    netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%
    
  2. Une fois les listes de contrôle d’accès d’URL ajoutées, procédez comme suit.

    1. Générez la solution.

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

    3. Ajoutez le service et le client (dans cet ordre) comme plusieurs projets de démarrage.

    4. Exécutez l’application. La console cliente affiche un flux de travail en cours d’exécution deux fois et la fenêtre Service affiche l’ID d’instance de ces flux de travail.