Procédure pas à pas : publication des services WCF avec l'adaptateur WCF-NetMsmq
Notes
Pour plus d’informations sur les cartes, consultez Adaptateurs dans BizTalk Server.
Introduction
Dans BizTalk Server, une orchestration peut être publiée en tant que service Windows Communication Foundation (WCF). Via un emplacement de réception BizTalk, une orchestration peut exposer un point de terminaison WCF, ce qui lui permet d’être appelé par un client WCF. L’Assistant Publication du service WCF BizTalk offre un moyen simple d’exposer une orchestration en tant qu’emplacement de réception.
L’adaptateur WCF-NetMsmq utilise la liaison NetMsmqBinding pour prendre en charge l’utilisation de Microsoft Message Queuing (également appelé MSMQ) comme transport sous-jacent. Le client d’un service WCF envoie des messages WCF à une file d’attente MSMQ à l’aide de l’emplacement de réception configuré pour utiliser l’adaptateur WCF-NetMSMQ. L’adaptateur récupère les messages WCF de la file d’attente MSMQ, les convertit au format BizTalk Server et les écrit dans la base de données MessageBox BizTalk Server.
Cette procédure pas à pas montre comment une application de console cliente WCF utilise l’adaptateur WCF-NetMsmq pour communiquer avec un service WCF, hébergé dans une application console .NET, via une file d’attente de messages MSMQ. Elle présente une méthode de publication de métadonnées pour un emplacement de réception à l'aide de l'Assistant Publication de services WCF BizTalk. Elle décrit également la configuration d'une application Web pour prendre en charge la publication des métadonnées.
Une fois cette procédure pas à pas terminée, vous saurez comment effectuer les tâches suivantes :
À partir de Visual Studio, utilisez la commande Déployer pour déployer des assemblys BizTalk sur un instance local de BizTalk Server. Vous créerez ainsi une application BizTalk contenant ces assemblys. Un assembly BizTalk contient des informations sur les ressources utilisées dans une solution BizTalk Server (par exemple, des orchestrations, des pipelines, des schémas et des mappages).
À partir de la console d’administration BizTalk Server, configurez un emplacement de réception WCF-NetMsmq pour héberger le service WCF publié.
À partir de l’Assistant Publication du service WCF BizTalk, créez l’application web pour publier des métadonnées pour un emplacement de réception existant. Ces métadonnées sont exploitées par le client qui envoie des messages vers cet emplacement de réception.
Prérequis
Pour exécuter la procédure décrite dans cet exemple, assurez-vous que votre environnement est conforme à la configuration requise décrite ci-dessous :
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, .NET Framework et 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 une liaison ou 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.
Générer et déployer la solution BizTalk, BizTalkApp
Extrayez WCFNetMsmqAdapterPublishing.exe dans C :\WCFNetMsmqAdapterPublishing.
Dans Visual Studio, ouvrez le fichier WCFNetMsmqAdapterPublishing.sln .
Dans Explorateur de solutions, développez BizTalkApp, puis ouvrez OrderProcess.odx pour passer en revue. L'exemple d'orchestration reçoit des messages de demande de commande et renvoie simplement des messages de réponse de commande.
Étant donné que l’assembly BizTalkApp doit être installé dans le GAC, il aura besoin d’un fichier de clé de nom fort pour terminer le processus de déploiement. Cliquez avec le bouton droit sur le projet BizTalkApp , puis cliquez sur Propriétés. Dans la page Propriétés , cliquez sur Signature, puis sélectionnez Signer l’assembly. Cliquez sur la flèche vers le bas dans la liste déroulante Choisir un fichier de clé de nom fort , cliquez sur <Nouveau> , puis entrez
keyfile.snk
dans la zone de texte Nom du fichier de clé . Décochez Protéger mon fichier de clé avec un mot de passe, puis cliquez sur OK.Cliquez sur l’onglet Déploiement , puis modifiez la propriété Server si vous utilisez un autre serveur de base de données pour la base de données de gestion BizTalk en plus de LOCALHOST. Vérifiez que la valeur de l’application BizTalk est définie sur WCFNetMsmqAdapterPublishing. Vérifiez que l’option Installer sur Global Assembly Cache a la valeur True.
Dans Explorateur de solutions, cliquez avec le bouton droit sur le projet BizTalkApp, puis cliquez sur Reconstruire.
Dans Explorateur de solutions, cliquez avec le bouton droit sur BizTalkApp, puis cliquez sur Déployer.
Configurer l’application
Assurez-vous que le composant Microsoft Message Queuing (MSMQ) est installé sur votre ordinateur en procédant comme suit :
Cliquez sur Démarrer, cliquez avec le bouton droit sur Ordinateur, puis cliquez sur Gérer pour ouvrir Gestionnaire de serveur.
Développez le nœud Fonctionnalités . Si Message Queuing n’est pas installé, cliquez avec le bouton droit sur Fonctionnalités, puis sélectionnez Ajouter des fonctionnalités. Cochez Message Queuing, cliquez sur Suivant, puis sur Installer pour installer MSMQ sur ce système.
Assurez-vous que le service Message Queuing est en cours d'exécution sur l'ordinateur destiné à être utilisé par l'adaptateur WCF-NetMsmq en procédant comme suit :
Cliquez sur Démarrer, pointez sur Outils d'administration, puis cliquez sur Services.
Dans Services, vérifiez que l’état du service Message Queuing est Démarré. Si le service n’est pas démarré, cliquez avec le bouton droit sur Message Queuing, puis cliquez sur Démarrer.
Créez la file d’attente cible que l’emplacement de réception utilise à partir de laquelle l’adaptateur WCF-NetMsmq récupère les messages WCF entrants des clients.
Cliquez sur Démarrer, pointez sur Outils d'administration, puis cliquez sur Gestion de l'ordinateur.
Dans Gestion de l’ordinateur, développez Services et applications, Message Queuing, cliquez avec le bouton droit sur Files d’attente privées, pointez sur Nouveau, puis cliquez sur File d’attente privée.
Dans la boîte de dialogue Nouvelle file d’attente privée, tapez
WCFNetMsmqAdapterPublishing
dans la zone de texte Nom de la file d’attente, sélectionnez la zone Case activée transactionnelle, puis cliquez sur OK.
Créez un emplacement de réception WCF-NetMsmq pour l'exemple d'application en procédant comme suit :
Cliquez sur Démarrer, pointez sur Tous les programmes, sur Microsoft BizTalk Server 20xx, puis cliquez sur administration BizTalk Server.
Dans la console d’administration BizTalk Server, développez BizTalk Group, Applications, WCFNetMsmqAdapterPublishing, cliquez avec le bouton droit sur Ports de réception, pointez sur Nouveau, puis cliquez sur Port de réception unidirectionnel.
Dans la boîte de dialogue Propriétés du port de réception , dans la zone de texte Nom , tapez
WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder
, puis cliquez sur OK.Dans la console Administration BizTalk Server, cliquez avec le bouton droit sur WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder, pointez sur Nouveau, puis cliquez sur Emplacement de réception.
Dans la boîte de dialogue Propriétés de l’emplacement de réception, dans la zone de texte Nom , tapez
WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder.NetMsmq
.Dans la boîte de dialogue Propriétés de l’emplacement de réception, dans la section Transport en regard de Type, sélectionnez WCF-NetMsmq dans la liste déroulante, puis cliquez sur Configurer.
Dans la boîte de dialogue Propriétés du transport WCF-NetMsmq , sous l’onglet Général , dans la zone de texte Adresse (URI), tapez
net.msmq://localhost/private/WCFNetMsmqAdapterPublishing
.Dans la boîte de dialogue Propriétés du transport WCF-NetMsmq, sous l’onglet Liaison, vérifiez que la zone Case activée transactionnelle est sélectionnée.
Notes
Étant donné que la file d'attente cible que vous avez créée est transactionnelle, vous devez activer cette case à cocher. Si elle ne l'est pas, l'emplacement de réception ne sera pas activé, car il y aura une différence entre les exigences transactionnelles de cet emplacement de réception et celles de la file d'attente MSMQ sous-jacente.
Dans la boîte de dialogue Propriétés du transport WCF-NetMsmq , sous l’onglet Sécurité , sélectionnez Aucun dans la liste déroulante Mode de sécurité .
Notes
Cette procédure pas à pas suppose que MSMQ est installé avec l’intégration Active Directory désactivée sur votre ordinateur. La valeur par défaut, WindowsDomain, pour la propriété mode d’authentification MSMQ est disponible lorsque l’intégration Active Directory est activée.
Dans la boîte de dialogue Propriétés de l’emplacement de réception, cliquez sur OK.
Créez un port d'envoi FILE pour l'exemple d'application. Ce port permet d'acheminer la réponse du bon de commande via l'orchestration sous-jacente du service.
Dans la console d’administration BizTalk Server, développez WCFNetMsmqAdapterPublishing, cliquez avec le bouton droit sur Ports d’envoi, pointez sur Nouveau, puis cliquez sur Port d’envoi unidirectionnel statique.
Dans la boîte de dialogue Propriétés du port d’envoi, dans la zone de texte Nom, tapez .
WCFNetMsmqAdapterPublishing.SendPurchaseOrder.File
Dans la boîte de dialogue Propriétés du port d’envoi , dans la section Transport en regard de Type, sélectionnez FICHIER dans la liste déroulante, puis cliquez sur Configurer.
Dans la boîte de dialogue Propriétés du transport fichier , sous l’onglet Général , dans la zone de texte Dossier de destination , tapez
C:\WCFNetMsmqAdapterPublishing\Out
, puis cliquez sur OK.Dans la boîte de dialogue Propriétés du port d’envoi , cliquez sur OK.
Spécifiez le nom d'hôte et les liaisons pour l'exemple d'application comme suit :
Dans la console d’administration BizTalk Server, développez WCFNetMsmqAdapterPublishing, Orchestrations, cliquez avec le bouton droit sur l’exemple d’orchestration, cliquez sur Propriétés, cliquez sur Liaisons et définissez Host sur BizTalkServerApplication ou un autre hôte approprié.
Dans la boîte de dialogue Propriétés de l’orchestration , sélectionnez WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder dans la liste déroulante Ports de réception pour purchaseOrderRequestPort.
Dans la boîte de dialogue Propriétés de l’orchestration , sélectionnez WCFNetMsmqAdapterPublishing.SendPurchaseOrder.File dans la liste déroulante Send Ports/Send Port Groups pour purchaseOrderResponsePort.
Dans la boîte de dialogue Propriétés de l’orchestration , cliquez sur OK pour enregistrer la configuration.
Publier les métadonnées pour l’emplacement de réception WCF-NetMsmq
Cliquez sur Démarrer, pointez sur Tous les programmes, sur Microsoft BizTalk Server 20xx, puis cliquez sur Assistant Publication du service WCF BizTalk.
Dans la page Bienvenue dans l’Assistant Publication du service WCF BizTalk , cliquez sur Suivant.
Dans la page Type de service WCF, sélectionnez la zone de case activée de point de terminaison de métadonnées uniquement (MEX) pour publier les métadonnées pour l’emplacement de réception WCFNetMsmq. Sélectionnez WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder.NetMsmq dans la liste déroulante Publier les métadonnées pour l’emplacement de réception , puis cliquez sur Suivant.
Dans la page Créer un service WCF , sélectionnez Publier des orchestrations BizTalk en tant que service WCF, puis cliquez sur Suivant.
Dans la page Assembly BizTalk , dans la zone de texte Fichier d’assembly BizTalk (*.dll), cliquez sur Parcourir pour accéder au dossier C :\WCFNetMsmqAdapterPublishing\BizTalkApp\bin\Development , double-cliquez sur l’assembly contenant l’exemple d’orchestration à publier, puis cliquez sur Suivant.
Dans la page Orchestrations et ports , assurez-vous que le nœud Port : PurchaseOrderRequestPort est sélectionné dans la page, puis cliquez sur Suivant.
Le point de terminaison MEX de l'emplacement de réception est publié et utilisé par le client afin d'envoyer des messages vers l'emplacement de réception.
Dans la page Propriétés du service WCF , dans la zone de texte Espace de noms cible du service WCF , tapez l’URI que vous souhaitez que ce service WCF publié utilise, puis cliquez sur Suivant. Pour cette procédure pas à pas, conservez l’URI par défaut,
http://tempuri.org/
.Dans la page Emplacement du service WCF , effectuez les actions suivantes pour spécifier l’emplacement des services WCF à créer, puis cliquez sur Suivant :
Dans la zone de texte Emplacement , tapez le nom du répertoire web dans lequel le service WCF s’exécute ou cliquez sur Parcourir et sélectionnez un répertoire web. Pour cette procédure pas à pas, conservez l’emplacement par défaut (http://localhost/<Nom> de l’assembly BizTalk) dans la zone de texte Emplacement.
Sélectionnez l’option Autoriser l’accès anonyme au service WCF . Cette option permet d'ajouter un accès anonyme au répertoire virtuel créé. Vous devez sélectionner cette option afin d'autoriser une authentification anonyme pour l'application Web que cet Assistant va créer.
Dans la page Résumé du service WCF , cliquez sur Créer pour créer le service WCF.
Dans la page Fin de la publication du service WCF BizTalk , cliquez sur Terminer.
Configurer l’application web hébergeant le service de métadonnées publié
Ouvrez une invite de commandes, accédez au dossier C :\inetpub\wwwroot\Microsoft.Samples.BizTalk.WCF.NetMsmqPublishing.BizTalkApp dans lequel l’Assistant Publication du service WCF BizTalk a créé le service WCF. Ouvrez le fichier Web.config à l’aide du Bloc-notes.
Dans le Bloc-notes, ajoutez la ligne suivante à l’intérieur de l’élément <system.web> :
<trust level="Full" originUrl="" />
Notes
Ce paramètre est facultatif. Il accorde à l’application ASP.NET hébergeant le service WCF publié l’accès à toute ressource soumise à la sécurité du système d’exploitation.
Testez le service WCF publié à l’aide d’Internet Explorer comme suit :
Cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire des services Internet (IIS).
Dans le Gestionnaire des services Internet, créez un pool d'applications au sein duquel ce service sera exécuté qui dispose des autorisations d'accès à la base de données BizTalk appropriées. Cliquez avec le bouton droit sur Pools d’applications, cliquez sur Ajouter un pool d’applications, entrez un nom pour le pool d’applications, puis cliquez sur OK.
Développez Pools d’applications, cliquez avec le bouton droit sur le pool d’applications que vous venez de créer, puis sélectionnez Paramètres avancés. Sous la section Modèle de processus, entrez le compte qui a accès aux bases de données BizTalk Server sous le champ Identité.
Développez Sites web, Site web par défaut, puis développez l’application Web créée par l’Assistant Publication du service WCF BizTalk.
Dans le Gestionnaire des services Internet, dans le volet central, cliquez sur Affichage du contenu pour afficher les fichiers de l’application.
Cliquez avec le bouton droit sur le fichier de service Microsoft_Samples_BizTalk_WCF_NetMsmqPublishing_BizTalkApp_OrderProcess_PurchaseOrderRequestPort.svc que l’Assistant Publication du service WCF BizTalk a créé, puis cliquez sur Parcourir. Cela ouvre Internet Explorer pour afficher la page BizTalkServerInstance Service indiquant qu’une instance du service WCF est en cours d’exécution. La page affiche une adresse WSDL complète que vous pouvez copier et utiliser avec l’outil de métadonnées de service (svcutil.exe) ou à partir de Visual Studio pour récupérer le code proxy et un fichier de configuration qui peut être utilisé pour créer une application cliente pour le service.
Copiez dans le Presse-papiers la ligne de commande avec l’adresse WSDL complète de la page BizTalkServerInstance Service qu’Internet Explorer affiche à l’étape précédente.
svcutil.exe http://localhost/Microsoft.Samples.BizTalk.WCF.NetMsmqPublishing.BizTalkApp/Microsoft_Samples_BizTalk_WCF_NetMsmqPublishing_BizTalkApp_OrderProcess_PurchaseOrderRequestPort.svc?wsdl
Générer l’application cliente
Ouvrez une invite de commandes Visual Studio en tant qu’administrateur et accédez au dossier C :\WCFNetMsmqAdapterPublishing\WCFClient . Il s'agit de l'emplacement où vous allez placer la classe de proxy et le fichier de configuration de l'application.
Collez la ligne de commande svcutil.exe entière contenant l'adresse WSDL complète que vous avez copiée dans la procédure précédente, puis appuyez sur ENTRÉE. Cela crée la classe proxy BizTalkServiceInstance.cs et le fichier de configuration de l’application ,output.config. Gardez la fenêtre d’invite de commandes ouverte pour une utilisation pendant la dernière section.
Dans Visual Studio, dans Explorateur de solutions, cliquez avec le bouton droit sur WCFClient, pointez sur Ajouter, puis cliquez sur Élément existant.
Dans la boîte de dialogue Ajouter un élément existant , accédez au dossier WCFClient , sélectionnez Tous les fichiers (*.*) dans la liste déroulante Fichiers de type , sélectionnez bizTalkServiceInstance.cs et output.config fichiers, puis cliquez sur Ajouter.
Développez WCFClient, cliquez avec le bouton droit sur output.config, cliquez sur Renommer, puis tapez
App.config
comme nouveau nom.Double-cliquez sur Program.cs pour passer en revue comment appeler le service WCF publié à l’aide de la classe proxy générée par svcutil.exe.
Développez Références, puis vérifiez que le projet WCFClient a System.ServiceModel.dll référencé.
Cliquez avec le bouton droit sur le projet WCFClient , puis sélectionnez Générer. Gardez Visual Studio ouvert et passez à la section suivante.
Tester l’exemple de solution avec l’adaptateur WCF-NetMsmq
Dans la console Administration BizTalk Server, cliquez avec le bouton droit sur l’application WCFNetMsmqAdapterPublishing, puis cliquez sur Démarrer. Dans la boîte de dialogue Démarrer , cliquez sur Démarrer.
Dans la console Administration BizTalk Server, développez Paramètres de plateforme, Instances d’hôte, cliquez avec le bouton droit sur BizTalkServerApplication ou un autre instance hôte approprié, puis cliquez sur Redémarrer. Si cette étape n'est pas obligatoire, il est conseillé de vérifier que l'exemple fonctionne correctement à ce stade.
Dans Visual Studio, dans le menu Déboguer , cliquez sur Démarrer sans débogage pour exécuter l’application WCFClient. Cela envoie un exemple de message vers l'emplacement de réception WCF-NetMsmq. Vous visualiserez le message sortant ci-dessous indiquant que le message a été envoyé.
Appel de l'opération Envoyer dans l'emplacement de réception WCF-NetMsmq
Appuyez sur n'importe quelle touche pour fermer l'application cliente WCF
Appuyez sur n'importe quelle touche pour fermer l'application WCFClient.
Dans l’invite de commandes Visual Studio, accédez au dossier C :\WCFNetMsmqAdapterPublishing\Out , puis vérifiez que le message de réponse renvoyé par l’application WCFClient existe.
Double-cliquez sur le fichier {GUID}.xml pour l’ouvrir dans Internet Explorer et afficher la valeur OrderID traitée par le service.
Voir aussi
Configurer une WCF-NetMsmq l’adaptateurWCF d’emplacement de réception Procédure pas à pas depublication des métadonnées du service pour les adaptateurs de réception WCF