Procédure pas à pas : traitement des messages personnalisés avec l'adaptateur WCF-NetTcp
Dans cette procédure pas à pas, un client Windows Communication Foundation (WCF) envoie un message WCF contenant des données d’image JPEG binaires incorporées à un emplacement de réception BizTalk à l’aide de l’adaptateur WCF-NetTcp. L’image JPEG encodée binaire est extraite à l’aide d’une instruction XPath (avec encodage nœud Base64) via les paramètres Corps du message entrant dans la configuration de l’adaptateur. Le traitement XPath diffère de la méthode par défaut utilisée par BizTalk Server pour gérer les messages entrants. Dans la méthode par défaut, l’adaptateur obtient l’intégralité du contenu de l’élément Body du message WCF, puis l’envoie à la base de données BizTalk MessageBox. Le traitement des messages XPath extrait des parties spécifiques d’un message WCF entrant pour créer un message BizTalk personnalisé. Dans cet exemple, le traitement XPath recherche un élément XML nommé SendPicture dans le message WCF entrant (au format XML). Après avoir trouvé cet élément, XPath en extrait la valeur sous forme d'objet Base64 codé en binaire, puis place cette valeur binaire dans un message BizTalk. Le message est publié dans la base de données MessageBox, puis transféré vers un port d'envoi FILE à l'aide d'un abonnement de filtre de port d'envoi. Cet exemple n'utilise aucune orchestration. Tout le traitement est effectué via la messagerie BizTalk à l'aide de XPath.
Un adaptateur WCF est utilisé pour communiquer avec les clients Windows Communication Foundation (WCF) et les services à distance WCF à partir de BizTalk Server. Il permet la publication d'orchestrations et de schémas en tant que services WCF, et offre à une orchestration la possibilité d'utiliser des services WCF externes. L’adaptateur WCF-NetTcp utilise la liaison NetTcpBinding , ce qui signifie que le transport TCP utilise un encodage de message binaire optimisé. L'adaptateur WCF-NetTcp consiste en un adaptateur d'envoi et un adaptateur de réception. Il fournit un accès total aux fonctionnalités de sécurité, de fiabilité et de transaction SOAP.
Une fois cette procédure pas à pas terminée, vous saurez comment effectuer les tâches suivantes :
À l’aide de la console Administration BizTalk Server, importez un fichier MSI pour créer un port d’envoi, un port de réception et un emplacement de réception.
À l’aide de la console Administration BizTalk Server, configurez un emplacement de réception WCF pour exécuter une instruction XPath afin d’extraire des données de l’élément SendPicture du message WCF.
Notes
L’élément hosttrusted spécifie si l’hôte associé au gestionnaire de réception est approuvé. Dans le fichier bindings.xml, il est défini sur son paramètre par défaut, false
car dans cet exemple, nous ne nous soucions pas du service BizTalk Server Enterprise Sign-On unique (SSO). L’authentification unique permet la transmission des informations d’identification utilisateur via BizTalk Server pour intégrer des applications tierces à BizTalk Server. Un false
paramètre empêche un message BizTalk de passer par le service BizTalk dans le cadre du traitement de l’authentification unique.
Prérequis
Pour exécuter la procédure décrite dans cet exemple, assurez-vous que votre environnement installe les composants requis suivants :
L’ordinateur qui génère les assemblys et exécute le processus de déploiement, ainsi que l’ordinateur qui exécute l’exemple, nécessitent Microsoft Windows Server 2008 SP2, Microsoft .NET Framework 4.5 et Microsoft BizTalk Server.
L’ordinateur utilisé pour générer les assemblys et exécuter le processus de déploiement requiert Microsoft Visual Studio.
L’ordinateur qui exécute l’exemple nécessite les adaptateurs WCF et les outils d’administration WCF. Il s’agit d’options à installer lors de l’installation de Microsoft BizTalk Server.
Sur les ordinateurs que vous utilisez pour effectuer des tâches d’administration, vous devez vous exécuter en tant que compte d’utilisateur membre du groupe Administrateurs BizTalk Server pour configurer les paramètres d’application BizTalk Server dans la console Administration BizTalk Server. Ce compte d'utilisateur doit également être membre du groupe Administrateurs local pour le déploiement d'application, la gestion d'instances de l'hôte et d'autres tâches éventuellement requises.
Sur n’importe quel ordinateur qui nécessite la fonctionnalité WCF, effectuez la procédure d’installation à usage unique pour les exemples WCF à l’adresse https://go.microsoft.com/fwlink/?LinkId=135510.
Sur l’ordinateur qui exécute l’exemple et importe un fichier .msi dans BizTalk Server, vérifiez que l’hôte n’est pas un hôte approuvé ou que l’importation échoue.
Vous devez télécharger le code de procédure pas à pas et l’extraire sur votre ordinateur. Cette procédure pas à pas fait partie de l’ensemble du package de procédure pas à pas de l’adaptateur WCF. Vous pouvez télécharger le fichierWCFAdapterWalkthroughs.exe à partir du Centre de développement BizTalk Server à l’adresse https://go.microsoft.com/fwlink/?LinkId=194140.
Configuration de l'application WCFCustomMessageProcessing et d'artefacts
Dans la console d’administration BizTalk Server, cliquez avec le bouton droit sur Applications, sélectionnez Importer, puis fichier MSI. Accédez au fichier C:\WCFCustomMessageProcessing\WCFCustomMessageProcessing.msi , puis cliquez sur Ouvrir. Cela crée les artefacts suivants pour cette application :
Port d’envoi FileSP : emplacement sur le système de fichiers local de C :\WCFCustomMessageProcessing\Out où les données d’image JPEG sont envoyées par BizTalk Server comme sortie finale de l’exemple de traitement. Vous pouvez afficher le filtre de port d’envoi de BTS. ReceivePortName = NetTcpRP configuré dans la boîte de dialogue Propriétés FileSP sous Filtres. Le filtre est associé au port de réception NetTcp. Tous les messages acceptés sur le port de réception NetTcpRP seront envoyés à l’emplacement de sortie du port d’envoi FileSP de C :\WCFCustomMessageProcessing\Out une fois que l’emplacement de réception a exécuté le traitement XPath sur le message.
Port de réception NetTcpRP : port qui contient logiquement l’emplacement de réception NetTcpRL .
Emplacement de réception NetTcpRL : cela utilise le pipeline PassThroughTransmit par défaut et l’adaptateur WCF-NetTcp pour exécuter une instruction XPath pour extraire les données d’image JPEG du message WCF entrant.
Autres étapes pour configurer l'application WCFCustomMessageProcessing
Vous pouvez également suivre les étapes manuelles permettant de configurer l’application sans utiliser le fichier C:\WCFCustomMessageProcessing\bindings.xml . Il est inutile de les exécuter si le processus d'importation de fichier de liaison précédent fonctionne correctement. En revanche, la lecture de ces étapes enrichira probablement votre connaissance de l'utilité du fichier MSI.
Créez un port de réception unidirectionnel (NetTcpRP) et un emplacement de réception (NetTcpRL).
Développez l’application WCFCustomMessageProcessing , cliquez avec le bouton droit sur Ports de réception, sélectionnez Nouveau, puis port de réception unidirectionnel. Dans la boîte de dialogue Propriétés du port de réception, entrez
NetTcpRP
pour Nom, puis cliquez sur OK.Cliquez avec le bouton droit sur le port de réception NetTcpRP , sélectionnez Nouveau, puis sélectionnez Emplacement de réception. Dans la boîte de dialogue Propriétés de l’emplacement de réception, entrez
NetTcRL
pour Nom. Dans la section Transport , cliquez sur la zone de liste déroulante Type , sélectionnez WCF-NetTcp dans la liste déroulante, puis cliquez sur Configurer.Sous l’onglet Général, entrez net.tcp ://localhost/NetTcpRL/Image dans le champ Adresse(URI).
Sous l’onglet Sécurité , définissez le mode sécurité sur Aucun.
Sous l’onglet Message , sélectionnez l’option Chemin d’accès pour le corps du message BizTalk entrant, puis entrez
/*[local-name()="SendPicture" and namespace-uri()='http://tempuri.org/']/*[local-name()="stream"]
pour l’expression de chemin d’accès au corps. Sélectionnez Base64 comme encodage de nœud. L’option Chemin d’accès a la valeur, car le corps du message WCF que BizTalk Server reçoit est au format suivant : <SendPicture xmlns= »http://tempuri.org/" ;><stream>réel base 64 données d’image< binaire codées/flux></SendPicture>Dans la boîte de dialogue Propriétés de l’emplacement de réception, cliquez sur OK.
Créez un port d'envoi de fichier unidirectionnel (FileSP) abonné au port de réception NetTcpRP.
Cliquez avec le bouton droit sur Ports d’envoi, sélectionnez Nouveau, puis Port de réception unidirectionnel. Sélectionnez Port unidirectionnel statique. Entrez
FileSP
pour Nom.Dans la section Transport , cliquez sur la zone de liste déroulante Type , sélectionnez FICHIER dans la liste déroulante, puis cliquez sur Configurer.
Sous Dossier de destination , entrez
C:\WCFCustomMessageProcessing\Out
, puis cliquez sur OK.Cliquez sur Filtres, sélectionnez
BTS.ReceivePortName == NetTcpRP
, puis cliquez sur OK.
Configuration du port d'envoi et exécution de l'application
Cliquez avec le bouton droit sur l’application WCFCustomMessageProcessing , puis sélectionnez Démarrer. Cela a pour effet d'inscrire l'emplacement de réception NetTcpRL et de démarrer le port d'envoi FileSP.
Dans Visual Studio, ouvrez le
Client.sln
fichier à partir du dossier C :WCFCustomMessageProcessing\Client . Dans Explorateur de solutions, cliquez avec le bouton droit sur le projet Client, puis sélectionnez Générer.Dans Visual Studio, sélectionnez Déboguer, puis Démarrer sans débogage pour exécuter l’application Client.exe. Une invite de commandes s’affiche indiquant que l’image a été envoyée à BizTalk Server.
Observez la sortie du fichier {GUID}.jpg réussie dans le dossier de fichier de port d’envoi de C :\WCFCustomMessageProcessing\Out. Cela montre que le traitement de l’application pour extraire le fichier JPEG et l’écrire dans un port d’envoi FILE s’est terminé avec succès.