Partager via


Procédure pas à pas : publication des services WCF avec l'adaptateur WCF-BasicHttp

Introduction

Cette procédure pas à pas publie un service Windows Communication Foundation (WCF) en tant qu’orchestration BizTalk à l’aide de l’Assistant Publication du service WCF BizTalk et de l’adaptateur WCF-BasicHttp. Une orchestration BizTalk apparaît à un client externe, tel qu’un autre service Web ou une application WCF, en tant que service WCF en exposant un point de terminaison WCF à l’aide de l’adaptateur WCF-BasicHttp. L'adaptateur WCF-BasicHttp consiste en un adaptateur d'envoi et un adaptateur de réception. Dans cet exemple, vous allez utiliser uniquement le côté réception de cet adaptateur pour recevoir les demandes de service WCF via le protocole HTTP ou HTTPS des applications clientes WCF.

L’adaptateur WCF-BasicHttp utilise la liaison BasicHttpBinding pour fournir une implémentation de pile de transport/protocole compatible avec la version initiale des services Web pour servir de pont entre BizTalk Server et la fonctionnalité WCF. Il assure la communication avec des clients et services Web basés sur des fichiers ASMX conformes à WS-I Basic Profile 1.1, en utilisant le transport HTTP ou HTTPS avec codage de texte. Si vous utilisez l'adaptateur WCF-BasicHttp, vous ne pouvez pas tirer parti des fonctionnalités de communication Web avancées prises en charge par les protocoles WS-*. Pour ce faire, utilisez l'adaptateur WCF-WSHttp.

Cette procédure pas à pas vous montre comment créer un emplacement de réception WCF-BasicHttp pour publier une orchestration en tant que service WCF. Vous allez configurer Internet Information Services (IIS) pour fournir un hébergement isolé de ce service WCF. Une application cliente appelle l’orchestration WCF publiée comme exemple de la façon dont un client externe peut appeler le service WCF publié sur Internet pour utiliser ses fonctionnalités.

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 le service WCF sous la forme d’une orchestration BizTalk à l’intérieur d’un assembly BizTalk vers un instance local de BizTalk Server. Le déploiement à partir de Visual Studio crée une application BizTalk qui est renseignée avec les assemblys contenant des ressources telles que des orchestrations, des pipelines, des schémas et des mappages à utiliser dans la solution BizTalk.

  • Une fois déployée, l’orchestration BizTalk est disponible pour la configuration et le contrôle via la console d’administration BizTalk Server. Dans cette procédure pas à pas, vous allez configurer l’emplacement de réception WCF-BasicHttp pour accepter les messages entrants envoyés au service WCF créé par l’Assistant Publication du service WCF BizTalk. L’emplacement de réception est hébergé par l’hôte isolé BizTalk dans IIS et agit en tant que service WCF pour accéder aux requêtes entrantes.

Notes

Dans cette procédure pas à pas, vous allez utiliser l’Assistant Publication WCF BizTalk et/ou l’Assistant Publication du service web BizTalk pour publier des orchestrations et des schémas BizTalk en tant que services WCF avec les adaptateurs WCF. Pour publier des orchestrations et des schémas en tant que services web avec l’adaptateur SOAP, vous utilisez l’Assistant Publication wcf BizTalk et/ou l’Assistant Publication des services Web BizTalk.

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 2008 SP2 et/ou Windows Server 2008 R2, Microsoft .NET Framework 4 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 dans Procédure d’installation à temps unique pour les exemples Windows Communication Foundation.

  • 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.

Pour déployer l'exemple de solution BizTalk (BizTalkApp)

  1. Exécutez le fichier WCFBasicHttpReceiveAdapter.exe auto-extracteur et extrayez les fichiers dans le dossier C :\WCFBasicHttpReceiveAdapter .

  2. Dans Microsoft Visual Studio, ouvrez le fichier C :\WCFBasicHttpReceiveAdapter\WCFBasicHttpReceiveAdapter.sln .

  3. L’assembly Microsoft.Samples.BizTalk.WCFBasicHttpReceiveAdapter.BizTalkApp contient une orchestration BizTalk Server, une carte et deux schémas. Il doit être installé dans le GAC et a besoin d’un fichier de clé de nom fort pour que cela se produise. 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.

  4. Dans Explorateur de solutions, cliquez avec le bouton droit sur le projet BizTalkApp, puis cliquez sur Reconstruire.

    Notes

    N’essayez pas de générer une solution ou de générer l’application WCFClient à ce stade. WcfClient n’est pas prêt à être généré à ce stade dans l’exemple.

  5. Développez BizTalkApp, puis ouvrez DeliveryProcess.odx pour passer en revue. L’orchestration accepte une requête WCF sur HTTP à l’aide de l’adaptateur WCF-BasicHttp. Il modifie la demande à l’aide d’un mappage de transformation et envoie à nouveau la réponse à l’aide du même adaptateur WCF.

    1. Cette orchestration dispose d'un port requête-réponse logique qui sera publié avec l'adaptateur WCF-BasicHttp. Il sera lié à un port physique ultérieurement.

    2. Cliquez avec le bouton droit sur le nœud supérieur de DeliveryProcess.odx dans la fenêtre du concepteur, puis sélectionnez Propriétés. Assurez-vous que la propriété Modificateur de type de port est Public.

  6. Dans Explorateur de solutions, cliquez avec le bouton droit sur BizTalkApp, puis cliquez sur Propriétés.

    1. Si la base de données de gestion BizTalk n’est pas hébergée localement, modifiez la propriété Server si vous utilisez un autre serveur de base de données. Cliquez sur l’onglet Déploiement , puis modifiez la propriété Serveur pour qu’elle pointe vers le serveur de base de données.

    2. Vérifiez que la propriété Nom de l’application est définie sur WCFBasicHttpReceiveAdapter. Il s'agit du nom de l'application BizTalk où la solution BizTalk sera déployée.

    3. Dans Explorateur de solutions, cliquez avec le bouton droit sur BizTalkApp, puis cliquez sur Déployer. Si vous ne déployez pas localement, vous devez peut-être configurer SQL Server pour autoriser les connexions à distance. Pour plus d’informations, consultez Guide pratique pour activer les connexions à distance sur SQL Server.

Pour publier l'exemple d'orchestration à l'aide de l'Assistant Publication de services WCF BizTalk

  1. Dans cette étape, vous allez prendre l’assembly d’orchestration récemment déployé et le publier en tant que service WCF. Pour ce faire, cliquez sur Démarrer, pointez sur Tous les programmes, sur MicrosoftBizTalk Server, puis cliquez sur Assistant Publication du service WCF BizTalk.

  2. Dans la page Bienvenue dans l’Assistant Publication du service WCF BizTalk , cliquez sur Suivant.

  3. Dans la page Type de service WCF , effectuez les actions suivantes pour spécifier le type de service WCF à publier et les points de terminaison BizTalk pour la réception des messages WCF, puis cliquez sur Suivant :

    1. Sélectionnez l’option Point de terminaison de service , qui indique que vous allez publier un service WCF à partir d’une orchestration dans un assembly. Sélectionnez WCF-BasicHttp dans la liste déroulante Nom de l’adaptateur (type de transport).

    2. Sélectionnez la zone Activer le point de terminaison de métadonnées case activée pour que l’emplacement de réception WCF hébergé par IIS publie ses métadonnées de service WCF. Si vous sélectionnez cette zone de case activée, l’attribut httpGetEnabled de l’élément serviceMetadata> a la < valeur true dans Web.Config. Ces métadonnées sont récupérées lorsqu’une requête HTTP/GET les demande. Plus tard, vous utiliserez l’outil SvcUtil.exe pour obtenir ces données afin de générer une classe proxy que le code client utilisera pour appeler le service WCF.

    3. Sélectionnez l’option Créer des emplacements de réception BizTalk dans l’application suivante pour créer les ports de réception et les emplacements correspondant à chaque fichier .svc généré pour l’adaptateur WCF-BasicHttp. Choisissez le nom de l’application BizTalk, WCFBasicHttpReceiveAdapter, où les ports de réception et les emplacements seront générés, puis cliquez sur Suivant.

      L'Assistant crée un fichier de liaison, Binding.XML, pour représenter les emplacements de réception associés. Ce fichier se trouve dans le répertoire Web et peut être importé manuellement par le biais de la console d’administration BizTalk Server.

      Notes

      Si vous ne sélectionnez pas ici d'application BizTalk déployée, l'application par défaut est sélectionnée.

  4. Dans la page Créer un service WCF , sélectionnez Publier des orchestrations BizTalk en tant que service WCF, puis cliquez sur Suivant. Cela publiera l’orchestration spécifiée à l’étape suivante en tant que service WCF.

  5. Sélectionnez l'assembly contenant l'orchestration à publier. Dans la page Assembly BizTalk , dans la zone de texte Fichier d’assembly BizTalk (*.dll), cliquez sur Parcourir pour accéder au dossier C :\WCFBasicHttpReceiveAdapter\BizTalkApp\bin\Development , double-cliquez sur l’assembly Microsoft.Samples.BizTalk.WCFBasicHttpReceiveAdapter.BizTalkApp contenant l’exemple d’orchestration à publier, cliquez sur Ouvrir, puis sur Suivant.

  6. Dans la page Orchestrations et ports , assurez-vous que le nœud Port : DeliveryRequestPort est sélectionné dans la page, puis cliquez sur Suivant. La sélection de ce nœud signifie que les nœuds de niveau supérieur correspondants sont également sélectionnés. Le port sera publié avec un emplacement de réception de requête-réponse hébergeant l'adaptateur WCF-BasicHttp.

  7. Dans la page Propriétés du service WCF , dans la zone de texte Espace de noms Cible du service WCF , tapez un URI que vous souhaitez que ce service WCF publié utilise, puis cliquez sur Suivant. Pour cette procédure pas à pas, laissez l’URI par défaut«<http://tempuri.org/> » dans la zone de texte Espace de noms Cible du service WCF.

  8. 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 :

    1. Dans la zone de texte Emplacement , tapez le nom du répertoire web où le service WCF s’exécute, ou cliquez sur Parcourir et sélectionnez le répertoire web. Pour cette procédure pas à pas, étant donné que le nom de l’assembly est identique au répertoire virtuel, laissez l’emplacement par défaut (http://localhost/Microsoft.Samples.BizTalk.WCFBasicHttpReceiveAdapter.BizTalkApp) dans la zone de texte Emplacement .

    2. Sélectionnez l’option Autoriser l’accès anonyme au service WCF , puis cliquez sur Suivant. Cette option autorise un accès anonyme au répertoire virtuel créé. Comme cette procédure pas à pas utilise le mode de sécurité Transport sans authentification, vous devez sélectionner cette option afin d'autoriser une authentification anonyme pour l'application Web que cet Assistant va créer.

  9. Dans la page Résumé du service WCF , cliquez sur Créer pour créer le service WCF. Cet étape crée pour l'orchestration spécifiée un port de réception disponible via le répertoire Web spécifié.

  10. Dans la page Fin de l’Assistant Publication du service WCF BizTalk , cliquez sur Terminer.

Pour activer l'exemple d'application BizTalk

  1. Cliquez sur Démarrer, pointez sur Tous les programmes, sur MicrosoftBizTalk Server, puis sur administration BizTalk Server.

  2. Dans la console Administration BizTalk Server, développez Applications, WCFBasicHttpReceiveAdapter, Orchestrations, cliquez avec le bouton droit sur l’orchestration DeliveryProcess, cliquez sur Propriétés, puis configurez les informations de liaison comme suit :

    1. Dans la boîte de dialogue Propriétés de l’orchestration , cliquez sur Liaisons, puis définissez Hôte sur BizTalkServerApplication.

    2. Dans la boîte de dialogue Propriétés de l’orchestration , sélectionnez un port de réception pour deliveryRequestPort à lier. Pour cette procédure pas à pas, sélectionnez le port de réception que l’Assistant Publication du service WCF BizTalk a créé dans la procédure précédente, puis cliquez sur OK.

  3. Dans la console administration BizTalk Server, cliquez avec le bouton droit sur WCFBasicHttpReceiveAdapter, cliquez sur Démarrer, puis sur Démarrer dans la boîte de dialogue Démarrer l’application.

Pour configurer l'application Web hébergeant le service WCF publié

  1. Cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Internet Information Services (IIS) 7.0 Manager.

  2. Dans le Gestionnaire des services Internet, développez Sites, Site web par défaut, puis développez l’application Web Microsoft.Samples.BizTalk.WCFBasicHttpReceiveAdapter.BizTalkApp créée par l’Assistant Publication du service WCF BizTalk .

  3. Créer un pool d'applications dans lequel ce service s'exécutera. 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.

  4. 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é.

  5. Dans le Gestionnaire des services Internet, cliquez sur Affichage du contenu. Dans le volet droit, cliquez avec le bouton droit sur le fichier .svc du service WCF que l’Assistant Publication du service WCF BizTalk a créé, puis cliquez sur Parcourir. Cela ouvre internet Explorer pour afficher une page indiquant que vous avez correctement créé un service WCF en cours d’exécution. Cette page inclut également une adresse WSDL complète, que vous pouvez copier et utiliser avec l'outil de métadonnées de service (svcutil.exe) pour extraire un code proxy et un fichier de configuration utilisables pour créer une application cliente pour le service.

  6. Copiez dans le Presse-papiers la ligne de commande SvcUtil.exe avec l'adresse WSDL complète de la page affichée par Internet Explorer à l'étape précédente.

Pour créer la classe de proxy pour l'exemple d'application cliente WCF, WCFClient

  1. Créez une classe proxy pour que l’exemple d’application cliente WCF puisse appeler le service WCF. Bien qu'un proxy ne soit pas obligatoire, l'écriture manuelle du code est très complexe. Il est donc recommandé de créer un proxy. Ouvrez une invite de commandes Visual Studio et accédez au dossier C :\WCFBasicHttpReceiveAdapter\WCFClient où vous placez la classe proxy et le fichier de configuration de l’application.

  2. Collez la ligne de commandesvcutil.exe avec l’adresse WSDL complète que vous avez copiée dans la procédure précédente, puis appuyez sur Entrée pour créer la classe proxy et le fichier de configuration de l’application. Cette ligne de commande crée BizTalkServiceInstance.cs pour la classe proxy et output.config pour le fichier de configuration de l’application.

  3. Dans Visual Studio, dans Explorateur de solutions, cliquez avec le bouton droit sur WCFClient, pointez sur Ajouter, puis cliquez sur Élément existant.

  4. 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.

  5. Pour le projet WCFClient , développez Références, puis vérifiez que le projet WCFClient a System.ServiceModel comme référence.

  6. Développez le projet WCFClient , cliquez avec le bouton droit sur output.config, cliquez sur Renommer, puis tapez App.config pour le nouveau nom.

  7. 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. Les appels pour instancier et appeler un service WCF semblent être des appels locaux dans la simplicité du codage à l’aide de la classe Microsoft_Samples_BizTalk_WCFBasicHttpReceiveAdapter_BizTalkApp_DeliveryProcess_DeliveryRequestPortClient . Aucun code supplémentaire n’est nécessaire pour effectuer un appel à un service WCF distant.

  8. Dans Visual Studio, dans le menu Déboguer , cliquez sur Démarrer sans débogage pour exécuter WCFClient. Le code client crée un message DeliveryItem et effectue un appel au service WCF, en passant l’Adresse, l’ID de produit et le Montant.

    DeliveryItem deliveryRequestItem = new DeliveryItem();
    deliveryRequestItem.Address = "One Microsoft Way";
    deliveryRequestItem.ProductID = "00A120c";
    deliveryRequestItem.Amount = "300";
    DeliveryRequestPortClient deliveryProcessClient = new DeliveryRequestPortClient("BasicHttpBinding_ITwoWayAsync");
    DeliveryItem1 deliveryConfirmation = deliveryProcessClient.Submit(deliveryRequestItem);
    

    Si le client reçoit correctement le message de réponse du service WCF publié, il affiche le numéro de confirmation de remise (une concaténation du ProductID et de l’Adresse) dans le message de réponse.

    Opération d'envoi appelée avec deliveryRequestItem

    Numéro de confirmation de remise renvoyé : 00A120c300One Microsoft Way

    Appuyez sur une touche pour continuer. . .

Voir aussi

Utilisation de l'Assistant Publication de services WCF BizTalk pour publier les orchestrations sous forme de services WCF