Corrélation de requête de message LINQ

L’exemple LinqMessageQueryCorrelation montre comment effectuer une corrélation basée sur le contenu en utilisant une implémentation MessageQuery personnalisée par opposition au XPathMessageQuery fourni par le système.

Illustre le

MessageQuery personnalisé, corrélation basée sur le contenu.

Discussion

Cet exemple montre le mode d'extension à partir de la classe de base MessageQuery pour les besoins de la corrélation. L'implémentation personnalisée, LinqMessageQuery, permet aux utilisateurs de fournir un XName à rechercher dans le message à l'aide de XLinq. Les données récupérées par la requête sont utilisées pour former la clé de corrélation afin de distribuer des messages à l'instance de workflow appropriée.

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 ACL d’URL appropriées doivent être ajoutées (pour plus d’informations, consultez Configuration de HTTP et HTTPS), en exécutant Visual Studio comme administrateur ou en exécutant la commande suivante dans une invite de commandes avec élévation de privilèges pour ajouter les listes 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. Ajoutez Service et Client (dans cet ordre) comme projets de démarrage.

    3. Exécutez l’application. La console cliente affiche un workflow qui envoie une commande et reçoit l’ID de bon de commande, puis confirme par la suite la commande. La fenêtre Service affichera les demandes en cours de traitement.