Hébergement et configuration de services WCF. Version 1.0



Documents pareils
1 Introduction. 2 Les contrats. 3 Les bindings. 4 Hébergement. 5 Consommation. 6 WCF et remoting. 7 Sessions, instantiations et concurrence

Mettre en place un accès sécurisé à travers Internet

K?ellaWeb Saisie des absences, retards et sanctions APLON en mode Web

Manuel du logiciel PrestaTest.

Créer et partager des fichiers

MISE A JOUR : 04 FEVRIER 2011 PROCÉDURE D INSTALLATION. Cegid Business COMMENT INSTALLER CEGID BUSINESS V9 SOUS WINDOWS XP, VISTA ET 7

Déployer une application cliente avec le Framework.NET 3.5 Client Profile

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

SQL Server Installation Center et SQL Server Management Studio

DOCUMENT D ACCOMPAGNEMENT POUR L INSTALLATION DU LOGICIEL ESTIMACTION

Le MSMQ. Version 1.0. Pierre-Franck Chauvet

Le serveur web Windows Home Server 2011

avast! EP: Installer avast! Small Office Administration

Introduction aux. services web 2 / 2

Guide SQL Server 2008 pour HYSAS

Guide de configuration. Logiciel de courriel

Pré-requis pour les serveurs Windows 2003, Windows 2008 R2 et Windows 2012

Sécurisation du réseau

Connexion à SQL server

Préconisations Techniques & Installation de Gestimum ERP

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée Virtual Server de Microsoft

Oracle Developer Suite 10g. Guide de l installation. Vista & Seven

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

RTE Technologies. RTE Geoloc. Configuration avec Proxy ou Firewall

Système Principal (hôte) 2008 Enterprise x64

et dépannage de PC Configuration Sophie Lange Guide de formation avec exercices pratiques Préparation à la certification A+

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)

FileMaker Server 14. Guide de démarrage

Atelier Le gestionnaire de fichier

BTS SIO option SISR Lycée Godefroy de Bouillon Clermont-Ferrand

Manuel d'installation de GESLAB Client Lourd

Compte Rendu d intégration d application

Installation de GFI MailEssentials

Création d un compte Exchange (Vista / Seven)

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

1 - EXCHANGE Installation

GPI Gestion pédagogique intégrée

Tutorial Terminal Server sous

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento version 1.3.x.x. Paiement en plusieurs fois. Version 1.

< Atelier 1 /> Démarrer une application web

Formateur.NET expérimenté Forte expertise dans la conception et le développement d applications.net, associée à une grande pédagogie

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8

MANUEL D INSTALLATION DE WATCHDOC 2011 (EVALUATION)

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

INTRODUCTION AUX TESTS DE PERFORMANCE ET DE CHARGE

Guide d installation d AppliDis Free Edition sur Windows Serveur 2008 R2

Sage Paie Recueil d informations techniques. Sage Paie & RH. Recommandations techniques. Mise à jour : 18 décembre Sage R&D Paie PME 1

Connecteur Zimbra pour Outlook 2007 et 2010 (ZCO) w

LANDPARK NETWORK IP LANDPARK NETWORK IP VOUS PERMET D'INVENTORIER FACILEMENT VOS POSTES EN RÉSEAU

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Déploiement d'une base SQL Express

Serveur FTP. 20 décembre. Windows Server 2008R2

Améliorer l expérience utilisateur en environnement TSE (Terminal Services, Services Bureau à distance, Remote App)

Gestion des sauvegardes

arcopole Studio Annexe 7 Architectures Site du programme arcopole :

CS REMOTE CARE - WEBDAV

Pré-requis serveur d'applications AppliDis pour Microsoft Windows Server 2012

Guide de migration BiBOARD V10 -> v11

Itium XP. Guide Utilisateur

Gestionnaire des services Internet (IIS)

Accès au Serveur de PAIE «SPV» par INTERNET Paramétrage du poste de travail «Windows»

Configuration du nouveau Bureau Virtuel (BV) collaboratif de Lyon I

Tropimed Guide d'installation

Déploiement et monitoring

Protéger une machine réelle derrière une machine virtuelle avec pfsense

Module.NET 3 Les Assemblys.NET

Manuel de l utilisateur

Guide d utilisation WEBPORTAL CPEM Portail d Applications Web CPEM

MANUEL D INSTALLATION

SQL SERVER PRECONISATIONS A L INSTALLATION.2 VERIFICATION INSTALLATION...2 CONNEXION RESEAU.4 EMPLACEMENTS DOSSIERS & SAUVEGARDES...

Mise en œuvre d une Gateway HTTP/HTTPS avec un serveur de Présentation en DMZ

Guide d installation BiBOARD

Eléments techniques tome I Installation Serveur Windows 2012

Qu est ce que Visual Guard. Authentification Vérifier l identité d un utilisateur

Cours CCNA 1. Exercices

LOGICIEL KIPICAM : Manuel d installation et d utilisation

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Procédure d'installation de SQL Server Express 2005

PROCÉDURE D AIDE AU PARAMÉTRAGE

Configuration Matérielle et Logicielle AGORA V2

Utiliser le portail d accès distant Pour les personnels de l université LYON1

Table des matières L INTEGRATION DE SAS AVEC JMP. Les échanges de données entre SAS et JMP, en mode déconnecté. Dans JMP

Espace pro. Installation des composants avec Firefox. Pour. Windows XP Vista en 32 et 64 bits Windows 7 en 32 et 64 bits

SERVICE CONTACT INSTANTANÉ GUIDE D UTILISATEUR

MANUEL D'INSTALLATION SUR WINDOWS 2003/2008 SERVER

Groupes et utilisateurs locaux avec Windows XP

Procédure d installation :

Standard. Manuel d installation

Tsoft et Groupe Eyrolles, 2005, ISBN :

Logiciel de connexion sécurisée. M2Me_Secure. NOTICE D'UTILISATION Document référence :

Pré requis Microsoft Windows Server 2008

Guide d'installation Application PVe sur poste fixe

Hyper V. Installation et configuration d une machine virtuelle. Joryck LEYES

Prérequis. Résolution des problèmes WMI. Date 03/30/2010 Version 1.0 Référence 001 Auteur Antoine CRUE

Assistance à distance sous Windows

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt

Installer Joomla Pearson France Joomla! Le guide officiel Jennifer Marriott, Elin Waring

Il est courant de souhaiter conserver à

CTIconnect PRO. Guide Rapide

Transcription:

Hébergement et configuration de services WCF Version 1.0

2 Configuration et Hebergement de services WCF Sommaire 1 Présentation du chapitre... 3 1.1 Présentation générale... 3 1.1.1 A qui s adresse ce chapitre... 3 1.1.2 Un mot sur les exemples... 3 2 Rappels sur WCF... 4 2.1 Principe de WCF.... 4 2.2 Principe de base des communications client/serveur WCF.... 4 2.2.1 Le contrat de service.... 4 2.2.2 Les endpoints... 4 2.2.3 La classe proxy.... 4 3 Notions avancées de communications client, serveur WCF.... 6 3.1 Notions avancées sur les endpoints... 6 3.1.1 Le binding... 6 3.2 Fonctionnement du dialogue entre un client et un service WCF... 7 3.2.1 Les canaux... 7 3.2.2 Le cheminement des messages... 8 3.2.3 Les différentes manières d héberger un service WCF.... 8 3.2.4 Présentation des différents modes d hébergement... 8 3.2.5 Mise en pratique de l hébergement de services.... 10 3.3 Gestion de l accès aux métadonnées de service... 19 3.3.1 Metadata Exchange (MEX).... 19 3.3.2 Paramétrer la publication des métadonnées d un service.... 20 3.4 Gestion des comportements de service... 21 3.4.1 Définition... 21 3.4.2 Déclaration et application des Behaviors... 21 3.5 La configuration coté client... 22 3.5.1 La classe proxy clé de voute de WCF coté client.... 22 3.5.2 Rôle et contenu d une classe proxy... 22 3.5.3 Consommer un service WCF sans pourvoir générer de classe proxy... 25 4 Conclusion :... 28

3 Configuration et Hebergement de services WCF 1 Présentation du chapitre 1.1 Présentation générale Tout au long de ce chapitre, nous allons traiter toute la problématique de l hébergement et de la configuration des services Windows Communication Foundation. Après avoir fait quelques rappels sur les notions essentielles à avoir pour la compréhension de ce chapitre, nous traiterons des différentes façons d héberger un service WCF et comment le configurer. 1.1.1 A qui s adresse ce chapitre Ce chapitre s adresse aux développeurs.net désireux de connaitre en profondeur les arcanes de l hébergement et de la configuration des services WCF. Afin de profiter pleinement de ce chapitre, il est fortement recommandé d avoir précédemment lu et assimilé dans sa globalité le chapitre 1 : Introduction à WCF. 1.1.2 Un mot sur les exemples Ce chapitre ne traitant que de l hébergement et de la configuration des services WCF, les exemples donnés tout au long de ce cours vont s appuyer sur l application «Médiathèque» qui a servi d exemple dans le chapitre précédent. A ce titre, il est souhaitable que le lecteur ait déjà suivi et appliqué la construction de ce programme exemple ou ait déjà écrit une application équivalente.

4 Configuration et Hebergement de services WCF 2 Rappels sur WCF Avant de commencer { aborder l hébergement et la configuration des services WCF, nous allons reprendre les notions fondamentales abordées dans le chapitre d introduction et qu il est nécessaire de comprendre pour pouvoir aborder ce nouveau chapitre dans les meilleures conditions. 2.1 Principe de WCF. Le but de WCF est d exposer une ou plusieurs méthodes d un objet { travers un réseau local d entreprise ou { travers l Internet afin que des applications puissent les utiliser. Pour ce faire, il est donc nécessaire d héberger le service WCF sur un serveur, et de le configurer de manière { ce qu il soit capable de répondre aux requêtes des clients potentiels. Du coté du client l application qui va utiliser le service il faut lui fournir toutes les informations nécessaires pour se connecter au service WCF et l utiliser correctement. C est toute cette problématique d hébergement du service, de configuration coté serveur et de configuration coté client qui est l objet de ce chapitre. 2.2 Principe de base des communications client/serveur WCF. Lors de l introduction { WCF nous avons vu quelques rudiments du principe de communication entre un service WCF et ses clients. 2.2.1 Le contrat de service. Pour rappel, le seul élément que connait un client WCF du service auquel il se connecte est son «contrat de service». En pratique, il s agit d une interface décorée de l attribut [service contract] et dont chacune des méthodes devant être exposées aux clients est elle-même décorée avec l attribut [OperationContract]. Ensuite, cette interface est implémentée coté serveur par une classe appelée tout simplement «implémentation du service». L implémentation du service contient tout le code nécessaire { la réalisation proprement dite de l opération invoquée par le client. Bien entendu, ce dernier n a aucune connaissance de cette implémentation, il se contente juste d appeler une méthode définie dans l interface que lui présente le service. 2.2.2 Les endpoints Dans le précédent chapitre, vous avons vu les grandes lignes de la notion d endpoints. Un endpoint est un point auquel un client va pouvoir se connecter pour utiliser le service. Nous avons vu aussi qu un endpoint est en réalité une combinaison de 3 éléments A, B et C : Une Adresse : Où se trouve le service sur le réseau? Un Binding : Comment communiquer avec le service? Quelle «langue» faut-il parler? Un Contact : Comme exposé plus haut c est la liste des opérations que le service expose au client. 2.2.3 La classe proxy. Rappelons enfin que la classe proxy est une classe utilisée coté client pour masquer la complexité des communications entre le service WCF et l application qui l utilise. Cette classe contient une représentation locale de chaque classe métier utilisée par le service, en tant qu argument ou type de retour ainsi qu une vue de chaque méthode exposée par le service. Cette

5 Configuration et Hebergement de services WCF vue est obtenue a partir des informations WSDL du service, sorte de «mode d emploi» indiquant au client comment utiliser le service.

6 Configuration et Hebergement de services WCF 3 Notions avancées de communications client, serveur WCF. 3.1 Notions avancées sur les endpoints Revenons sur une notion fondamentale de WCF : les endpoints. Dans l Introduction nous avons vu qu un endpoint était une combinaison de 3 éléments : Une adresse, un binding, un contrat. 3.1.1 Le binding Le binding est certainement l élément le plus critique { configurer dans un endpoint WCF. Il peut servir à définir un nombre important de paramètres tels que le protocole de transport ou le format des messages échangés. En réalité, seuls ces deux paramètres sont obligatoires. Dans des services complexes, que nous étudierons dans les chapitres suivants, le binding peut aussi servir à définir des paramètres de sécurité (authentification et cryptographie) mais aussi comment le service doit gérer les transactions. 3.1.1.1 Les deux paramètres obligatoires du binding : 3.1.1.1.1 Le protocole de transport : De manière générale, pour communiquer { travers un réseau, il est nécessaire d utiliser des protocoles pour transporter les données afin que les différentes machines qui dialoguent entre elles se comprennent. C est exactement le même principe pour les humains : quand plusieurs personnes communiquent entre elles, elles utilisent une langue commune pour se comprendre. Par défaut, on utilise généralement le protocole http pour les services WCF. Seulement, ce protocole n est pas adapté { tous les cas de figure ni { tous les cas d utilisation possibles de WCF. Heureusement il est possible d utiliser d autres protocoles que http pour exposer des services WCF. Protocole http https Sockets TCP/IP Canaux nommés File d attente de message MSMQ Utilisation Protocole par défaut, Même principe que http avec une sécurité SSL/TLS en plus Méthode adaptée au transfert de données volumineuses telles que le son ou la vidéo Protocole généralement utilisé lorsque les clients du service se trouvent sur la même machine que le service lui même A utiliser pour le transfert de messages fiables et persistants. 3.1.1.1.2 Le format des données Le format des données sert, comme son nom l indique, { définir comment le client et le serveur vont dialoguer, comment les requêtes du client doivent être formées et comment les réponses du serveur doivent être interprétées. En quelque sorte, le binding défini la langue dans laquelle le serveur et le client vont communiquer. De manière générale, on distingue généralement 2 types de format de données : Ceux basés sur XML et qui donc sont basés sur du texte ou bien le binaire qui servira pour transmettre des flux volumineux de type vidéo par exemple.

7 Configuration et Hebergement de services WCF 3.1.1.2 L adresse Le rôle de l adresse est de localiser le service sur le réseau tout comme on localise un ordinateur ou un site internet. L adresse indique aussi le protocole de transport employé selon la nomenclature suivante : http https Tcp Canaux nommés MSMQ Protocole http:// https:// Net.tcp// Préfixe de l adresse Remarque : l adresse et le protocole indiqué dans la configuration doivent être compatibles! 3.2 Fonctionnement du dialogue entre un client et un service WCF Apres avoir étudié la notion de endpoint et ses divers composants, intéressons nous plus particulièrement au dialogue entre un client et un service WCF. 3.2.1 Les canaux Pour transiter du client vers le service ou du service vers le client, un message WCF passe par toute une série de canaux. Un canal est une entité logique qui va être chargée de traiter un aspect particulier du message. Ainsi, il y aura un canal spécialement dédié au transport du message au niveau du protocole (http, https, tcp ) : le canal de transport. Puis il y aura au dessus un canal chargé du respect de la bonne forme du message : le canal d encodage. Comme le laisse penser la dernière phrase, les canaux sont empilés les uns au dessus des autres exactement à la manière des couches du modèle OSI cher aux techniciens réseaux. En effet, les canaux WCF sont toujours ordonnés de la même façon : CANAL OPTIONNEL/UTILISATEUR CANAL OPTIONNEL/UTILISATEUR CANAL D ENCODAGE CANAL DE TRANSPORT Comme le montre le schéma si dessus, seuls les deux canaux représentant les couches les plus basses sont obligatoires (Transport et Encodage), par la suite, suivant la complexité du service { mettre en œuvre et les exigences de sécurité, des canaux supplémentaires peuvent être mis en place tels que des canaux de cryptographie ou d authentification. Il est même possible de définir son propre canal mais cela n est pas au programme de la certification WCF. Remarque : Il y a donc une forte corrélation entre les paramètres du binding et les canaux.

8 Configuration et Hebergement de services WCF 3.2.2 Le cheminement des messages Lorsqu un message transite du service vers le client ou inversement, le message passe successivement à travers chacun des canaux. Si, de son point de vue, le canal ne détecte pas d erreur, il le passe au canal suivant (celui du dessus ou celui du dessous suivant le sens de transit du message). Le cas échéant, le canal ayant détecté l erreur lève une exception et le parcours du message est arrêté. Requête d un client CANAL OPTIONNEL/UTILISATEUR CANAL OPTIONNEL/UTILISATEUR CANAL D ENCODAGE CANAL DE TRANSPORT Client CANAL OPTIONNEL/UTILISATEUR CANAL OPTIONNEL/UTILISATEUR CANAL D ENCODAGE CANAL DE TRANSPORT Service Réponse du Service CANAL OPTIONNEL/UTILISATEUR CANAL OPTIONNEL/UTILISATEUR CANAL D ENCODAGE CANAL DE TRANSPORT Client CANAL OPTIONNEL/UTILISATEUR CANAL OPTIONNEL/UTILISATEUR CANAL D ENCODAGE CANAL DE TRANSPORT Service Sens de cheminement de message Rejet du message + exception si erreur détectée Comme le montre le schéma ci-dessus, les canaux sont implémentés à la fois coté client (grâce à la classe proxy) et coté service (grâce à IIS ou WAS ou bien encore par la classe ServiceHost que nous étudierons plus loin dans ce chapitre). 3.2.3 Les différentes manières d héberger un service WCF. De la même manière qu il existe différents protocoles pour faire transiter des données WCF sur un réseau, il y a plusieurs moyens d héberger le service { proprement parler. Le choix du moyen à utiliser dépend généralement de deux facteurs : Le système d exploitation de la machine hébergeant le service. Le protocole de transport de données choisi. 3.2.4 Présentation des différents modes d hébergement Un peu plus loin dans ce chapitre, nous allons détailler et mettre en pratique chaque mode d hébergement. Mais avant voici une présentation rapide des différents modes disponibles avec les protocoles supportés par chacun, et les systèmes d exploitation sur lesquels ils sont exploitables. 3.2.4.1 L auto hébergement L auto hébergement désigne le fait que le service WCF soit hébergé { l intérieur d une application Windows (Winform, WPF, Service Windows ou même application console). Le nom «auto hébergé» vient du fait que dans ce cas de figure c est { l application d implémenter ellemême tous les mécanismes de gestion des canaux de communication (ouverture, recyclage,

9 Configuration et Hebergement de services WCF fermeture). Heureusement, le Framework.Net facilite la tâche du développeur à travers la classe ServiceHost que nous étudierons plus tard à travers un exemple. L auto hébergement est en réalité la façon la plus simple de mettre à disposition un service WCF. En effet, contrairement aux autres solutions que nous allons étudier, elle ne nécessite comme pré requis que d avoir le Framework.Net 3.0 ou supérieur d installé. En contrepartie c est la solution qui propose le moins de fonctionnalités annexes. C est au développeur de tout gérer lui-même. De plus, l auto hébergement n est probablement pas une bonne solution dans le cas d un service en production. En effet, exception faite de l hébergement dans un service Windows, il sera toujours nécessaire de lancer l application { la main après avoir ouvert une session sur la machine, chose que l on évite généralement de faire en production, car en cas de redémarrage du serveur, le service WCF sera indisponible tant qu un opérateur ne l aura pas relancé. Cependant, ce mode d hébergement est un choix pertinent dans des situations de communication pair à pair (messagerie instantanée par exemple). 3.2.4.2 L hébergement sous IIS Internet Information Service est le nom du serveur web de Microsoft. Il est fourni avec les versions de Windows basées sur NT (2000, XP, 2003, Vista et 2008). Ce mode d hébergement est très utilisé, car il est très simple { mettre en œuvre (un fichier d une ligne suffit { héberger le service) et contrairement { l auto-hébergement évoqué précédemment, le service démarrera automatiquement avec le serveur Web. Il ne nécessite donc pas d attention particulière. Cependant, de par sa nature même de serveur web, IIS ne supporte que les protocoles http et https. Bien que la majorité des services WCF en production soient hébergés { l aide de ces protocoles, cela peut être une limite dans certains cas évoqués dans un paragraphe précédent (gros volumes de données à transférer). Enfin, on notera que l hébergement d un service WCF sous IIS permet de profiter facilement de l authentification IIS/ASP.NET et de la gestion des profils. Ce point particulier sera détaillé dans un chapitre dédié à la sécurité des services. 3.2.4.3 L hébergement dans WAS. Windows Activation Service (WAS) est une nouvelle fonctionnalité apportée dans IIS 7.0, la version du serveur web de Microsoft fournie avec Windows Vista et Windows Server 2008. Le but de WAS est de permettre d étendre les services de IIS, qui est rappelons le, de par sa nature limité aux seuls protocoles http et https. WAS va donc permettre de faire de l hébergement IIS sur d autres protocoles que http(s) : MSMQ, sockets et canaux nommés. WAS est très puissant et très polyvalent, il est donc conseillé de l utiliser dés que cela est possible, c'est-à-dire dès que l on veut héberger des services sous Windows serveur 2008 ou Windows Vista. 3.2.4.4 Récapitulatif des moyens d hébergement en fonction du système d exploitation et du protocole de transport utilisé

10 Configuration et Hebergement de services WCF http(s) Sockets Canaux nommés Windows XP IIS Auto Auto Hébergement Hébergement Windows IIS Auto Auto serveur 2003 Hébergement Hébergement Windows IIS ou WAS Auto Auto Serveur Hébergement ou Hébergement ou 2008/Vista WAS WAS MSMQ Auto Hébergement Auto Hébergement Auto Hébergement ou WAS 3.2.5 Mise en pratique de l hébergement de services. Nous avons { présent terminé la partie théorique sur l hébergement. Nous allons maintenant passer à la pratique en hébergeant un service simple comme le service Médiathèque construit dans le chapitre d introduction { WCF. Pour rappel, dans le chapitre d introduction nous n avions spécifié aucun moyen d hébergement particulier, c est donc Visual Studio qui s était chargé de l héberger via l application WCF service host. Attention : L hébergement de services WCF nécessite d ouvrir des ports de communication réseau, ce qui nécessite des privilèges élevés sur la machine. Il faut donc que vous soyez administrateur de votre machine pour lancer des services WCF auto hébergés (le problème ne se pose pas avec IIS car il possède son propre compte utilisateur avec suffisamment de droits pour tout faire fonctionner correctement). 3.2.5.1 Hébergement du service Médiathèque dans une application Winform (Auto hébergement) Pour commencer, nous allons donner un exemple d auto hébergement, en hébergeant notre service dans une application Winform. A travers cet exemple nous allons étudier la mise en œuvre de la classe ServiceHost qui fournit toute la charpente d hébergement de services WCF. Cet exemple est valable tout aussi bien en Winform qu en WPF, en application console ou au sein d un service Windows. 3.2.5.2 Ecriture du code de l application Pour commencer, on ajoute une solution de type «application Winform» à la solution «Médiathèque». On sait que tous les mécanismes WCF se trouvent dans l espace de nom System.ServiceModel. On rajoute donc une référence à cet espace de nom dans notre nouveau projet. Après avoir préparé une petite IHM avec un bouton et un label permettant respectivement d ouvrir/fermer le service et d en afficher l état, il faut écrire le code permettant { notre programme d héberger le service :

11 Configuration et Hebergement de services WCF //C# public void StartStopServiceHost() { try { if (hote == null) hote = new ServiceHost(typeof(MediathequeServiceImpl)); if (hote.state!= CommunicationState.Opened) { hote.open(); lblstatutservice.text = "Service ouvert"; } else { hote.close(); lblstatutservice.text = "Service fermé"; } } catch (Exception ex) { MessageBox.Show(ex.Message,"Erreure",MessageBoxButtons.OK,MessageBoxIcon.Er ror); } } VB Public Sub StartStopService() Try If hote Is Nothing Then hote = New ServiceHost(GetType(MediathequeServiceImpl)) Else If Not (hote.state = CommunicationState.Opened) Then hote.open() Else hote.close() End If End If Catch ex As Exception MessageBox.Show(ex.Message, "Erreure", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub L hébergement d un service WCF dans un client lourd ou un service Windows ; passe par l utilisation d une instance de la classe ServiceHost, laquelle possède un constructeur qui prend en argument le type de l implémentation du service.

12 Configuration et Hebergement de services WCF Ensuite, un appel { la méthode Open() de l instance du ServiceHost permet d ouvrir { proprement parler les ports de communication par lesquels sera exposé le service. Si l appel { la méthode Open() ne lève pas d exception, le service WCF est alors prêt { répondre aux clients. 3.2.5.2.1 Le fichier de configuration. Nous venons d écrire le code qui permet d invoquer toute la plomberie d hébergement de services WCF dans notre application Winform, cependant, il manque tous les éléments de configuration (Endpoint(s), Comportement(s)). C est ce que nous allons définir maintenant : Bien que dans la pratique, il soit possible d écrire la configuration du service «en dur» directement dans le code source (en utilisant un objet ChannelFactory) cela n est pas recommandé. On préférera largement utiliser un fichier de configuration notamment parce que la séparation du code et de la configuration permet de ne pas avoir { recompiler l application. On gagne du temps, sans compter qu en production, c est généralement un ingénieur système et non pas un développeur qui gérera le service, il n aura donc pas Visual Studio { disposition mais un simple éditeur de texte. Dans une application de type Winform, le fichier de configuration s appelle App.config et il contient toute la configuration du service, notamment la définition des endpoints et les comportements (Behaviors). Voici une configuration possible pour notre service Médiatheque : <?xml version="1.0" encoding="utf-8"?> <configuration> <system.servicemodel> <services> <service name="mediathequeservice.mediathequeserviceimpl"> <endpoint address="http://127.0.0.1:4444/mediathequeah" binding="basichttpbinding" contract="mediathequeservice.imediathequeservice"/> </service> </services> </system.servicemodel> </configuration> Ce fichier de configuration est très simple, il définit juste un endpoint pour permettre aux clients d utiliser le service. C est le strict minimum! Ainsi, pour utiliser ce service, les clients se connecteront { l adresse http://127.0.0.1:4444/mediathequeah et dialogueront en http classique (basichttpbinding). On a vu précédemment que grâce { l auto hébergement, on pouvait utiliser tous les types de bindings existants, de plus un service peut tout à fait être exposé simultanément, à travers plusieurs endpoints (cette technique est couramment utilisée pour assurer la compatibilité des clients). On va donc maintenant écrire un deuxième endpoint qui permettra aux clients d utiliser des sockets TCP en lieu et place du protocole http.

13 Configuration et Hebergement de services WCF <?xml version="1.0" encoding="utf-8"?> <configuration> <system.servicemodel> <services> <service name="mediathequeservice.mediathequeserviceimpl"> <endpoint address="http://127.0.0.1:4444/mediathequeah" binding="basichttpbinding" contract="mediathequeservice.imediathequeservice"/> <endpoint address="net.tcp://127.0.0.1:4445" binding="nettcpbinding" contract="mediathequeservice.imediathequeservice"/> </service> La seule chose à faire est de rajouter une balise «endpoint» sur le modèle de la première, puis de modifier </services> le binding et l adresse (changer le protocole et changer le port car deux bindings </system.servicemodel> ne peuvent pas partager le même port). Notre service est à présent disponible à la fois en http et en tcp! </configuration> Note : Rien n empêche d exposer un service plusieurs fois par le même binding tant que l on n utilise pas la même adresse. Maintenant que nous avons { la fois codé l application hôte et écrit le fichier de configuration, le service est pleinement opérationnel, il ne reste plus qu a configurer le client. Ce point sera abordé un peu plus tard dans ce chapitre. 3.3.2.1.2.1 Editer graphiquement les fichiers de configuration WCF. Le fichier de configuration de notre exemple est court et simple, il n est donc pas difficile de l écrire { la main, cependant, un fichier de configuration peut vite devenir volumineux et difficilement compréhensible. C est pour cela qu il existe un outil permettant d éditer graphiquement les configurations WCF : Microsoft Service Configuration Editor. Pour ouvrir un fichier de configuration dans l éditeur, faites un clic droit sur le fichier de configuration puis choisissez «Edit WCF Configuration». Voici ce que l on obtient si on ouvre le fichier de configuration de notre service Médiathèque avec MSCE :

14 Configuration et Hebergement de services WCF Nous retrouvons bien nos deux endpoints, et nous avons la possibilité de les éditer, de les supprimer et d en créer de nouveaux mais aussi de créer un nouveau fichier de configuration de service grâce à un assistant. Chaque propriété se définit dans une interface comparable à l éditeur de propriétés de Visual Studio comme le montre la capture ci-dessous :

15 Configuration et Hebergement de services WCF Enfin, on notera que cet éditeur ne sert pas seulement à faire des configurations WCF coté serveur, mais peut aussi servir à éditer les fichiers des clients. A ce propos, on notera la possibilité de générer un fichier de configuration client à partir du fichier de configuration serveur. 3.2.5.3 Hébergement du service dans IIS 6.0. Nous venons de voir comment héberger un service WCF dans une application Windows, cependant, ce cas de figure n est pas forcement viable en entreprise, pour les raisons exposées dans l introduction de ce chapitre. C est pourquoi nous allons maintenant voir comment utiliser le serveur Web fourni avec Windows (IIS) pour héberger des services WCF. Attention : Sous IIS 6.0, livré avec Windows XP et Windows serveur 2003, IIS ne permet que d héberger un service web en http/https, en effet ce sont les deux seuls protocoles normalement supportés par un serveur Web. 3.2.5.3.1 Préparation du serveur Web. L hébergement de services WCF sous IIS, est très simple et rapide, il ne nécessite aucune ligne de code mais juste l écriture d un fichier de déclaration de service d extension.svc. Il faut donc d abord installer dans IIS la prise en charge de ces fichiers de configuration.svc. Pour cela, exécutez la commande suivante en tant qu administrateur local de votre machine : "C:\WINDOWS\Microsoft.NET\Framework\v3.0\Windows Foundation\ServiceModelReg.exe" -i Communication Cette commande aura pour effet d installer tous les éléments nécessaires { la prise en charge de WCF dans IIS:

16 Configuration et Hebergement de services WCF 3.2.5.3.2 Hébergement du service proprement dit ; Maintenant que le serveur web est prêt, on va rajouter un nouveau projet web vide à la solution Médiathèque, puis un nouveau fichier texte d extension.svc contenant l instruction suivante : <%@ ServiceHost Service="MediathequeService.MediathequeServiceImpl" %> Cette ligne est en fait une directive qui crée un objet de type ServiceHost en passant en paramètre la classe à exposer au client. Cette directive est le pendant pour IIS du code suivant que nous avions utilisé dans l auto hébergement. : hote = new ServiceHost(typeof(MediathequeServiceImpl)); De même que nous avions eu besoin d écrire un fichier de configuration pour définir les différents endpoints, il nous faut ici aussi faire la même chose à quelques points prés : Les fichiers de configuration des applications web ne s appellent non pas App.config mais Web.config Sous IIS on ne spécifie jamais l adresse d un service de manière absolue, en effet, l élément adresse du binding WCF est donnée par l adresse qui { été configurée dans IIS au niveau du site et du répertoire virtuel hébergeant le service, ainsi, dans pareil cas on écriera généralement une chaine vide en tant qu argument du paramètre : «address». Si jamais la chaine n est pas vide elle représentera l URL du service par rapport { l adresse de base configurée par l administrateur dans IIS. Enfin, sous IIS 6.0 le paramètre «Binding» prendra en argument forcément un Binding basé sur http (basichttpbinding par exemple) à cause des limitations exposées plus haut. Pour héberger notre service WCF Médiathèque dans IIS, on peut utiliser un fichier de configuration semblable à celui-ci (Seule la partie concernant WCF est présentée ici)

17 Configuration et Hebergement de services WCF <system.servicemodel> <services> <service name="mediathequeservice.mediathequeserviceimpl"> </service> </services> </system.servicemodel> </configuration> <endpoint address="" binding="basichttpbinding" contract="mediathequeservice.imediathequeservice"/> Si on compile ce projet et que l on affiche le fichier.svc dans le navigateur, on obtient la fenêtre suivante : D après cet écran, le service est bien opérationnel. Nous avons terminé d héberger notre service sous Microsoft Internet Information Service. Note : La page stipule aussi que les métadonnées de ce services sont désactivées, en d autres termes, le service fonctionne, certes, mais pour pouvoir l utiliser le client doit déj{ connaitre le nom des opérations que ce service expose, ainsi que les paramètres nécessaires. Nous verrons ce point là plus en détails plus tard dans ce chapitre. 3.2.5.4 Hébergement dans IIS 7.0 / WAS

18 Configuration et Hebergement de services WCF 3.2.5.4.1 Installation de Windows Activation Service Avant de pouvoir profiter des de services WCF hébergés sous WAS, il est nécessaire d installer cette fonctionnalité. Depuis le panneau de configuration, cliquer sur «programme et fonctionnalités», puis sur «fonctionnalités de Windows». Assurez-vous que les options suivantes sont cochées : Services Internet IIS IIS > Services WWW > Développement d application > ASP.Net Service d activation des processus Windows Microsoft.Net Framework 3.0 > WCF http Activation Microsoft.Net Framework 3.0 > WCF Non-http activation 3.2.5.4.2 Paramétrage de WAS Quand on souhaite utiliser un binding non http avec WAS, il faut activer la prise en charge du binding souhaité sur le site web hébergeant le service. 3.3.2.3.2.1 Paramétrage de WAS à l aide de Appcmd.exe Le paramétrage du support des protocoles s effectue grâce { l utilitaire «appcmd». Il se trouve normalement { l emplacement suivant : C:\ Windows\system32\inetserv\appcmd.exe Exemple d utilisation d Appcmd: appcmd set site "DF" -+bindings.[protocol='net.tcp',bindinginformation='808;*'] Dans cet exemple, on ajoute (+bindings) le support des sockets TCP (protocol= net.tcp ) pour le site appelé «DF» (set site "DF") 3.2.5.4.2.1 Parametrage manuel de WAS Appcmd.exe n est en fait qu une interface qui ne fait qu éditer le fichier XML C:\Windows\System32\inetsrv\config\applicationHost.config. Il est parfaitement possible d éditer ce fichier { la main. Voici la configuration d un site web IIS :

19 Configuration et Hebergement de services WCF <site name="df" id="2"> <application path="/" applicationpool="df"> <virtualdirectory path="/" physicalpath="d:\www\df" /> </application> <bindings> </bindings> <binding protocol="http" bindinginformation="*:4444:" /> <binding protocol="net.tcp" bindinginformation="4445:*"/> </site> 3.2.5.4.2.2 Hébergement du service Une fois les étapes d installation et de configurations terminées, la procédure d hébergement du service { proprement parler est rigoureusement identique à celle mise en œuvre sur IIS 6. Cependant, grâce { WAS vous pouvez spécifier des Endpoints de type autre que http ou https. Voici un exemple de configuration IIS 7.0 qui utilise WAS pour faire de l hébergement par sockets tcp en plus de l hébergement classique http <services> <service name="mediathequeservice.mediathequeserviceimpl" behaviorconfiguration="publicationmetadonnees"> <endpoint address="" binding="basichttpbinding" contract="mediathequeservice.imediathequeservice"/> <endpoint address="net.tcp://127.0.0.1:4445" binding="nettcpbinding" contract="mediathequeservice.imediathequeservice"/> </service> 3.3 Gestion de l accès aux métadonnées de service Depuis le début du chapitre, nous étudions l hébergement des services, en partant du principe que le client connait déjà le nom des méthodes exposées par le service, ainsi que les éventuels paramètres et les types de retour. Cependant, dans bien des cas notamment pour les services exposés librement sur internet, le client connaît l existence du service (son URL) mais ne connait pas précisément son interface. Nous allons voir qu il existe un moyen pour les services WCF (comme pour les services web «classiques»), d exposer des métadonnées, c'est-àdire des données dans lesquelles le service va se décrire pour permettre à un client lambda n ayant aucune connaissance du fonctionnement de ce service de l utiliser. 3.3.1 Metadata Exchange (MEX). Pour des questions de compatibilité et d interopérabilité le format d échange des métadonnées de service est codifié. L échange de métadonnées (MEX) passe par deux notions importantes : Le document WSDL et le format SOAP. 3.3.1.1 Le format WSDL Le format WSDL : Web Service Définition Langage, comme son nom l indique, { pour rôle de décrire un service WCF et plus généralement toutes formes de services web. Dans le document WSDL, on retrouve la signature de toutes les opérations (méthodes) exposées par le service, ainsi que la description des types métiers. Enfin, suivant le cas, on peut aussi trouver des

20 Configuration et Hebergement de services WCF instructions relatives { la sécurité (par exemple comment s identifier sur le service). Ces instructions facultatives se trouvent dans ce que l on appelle les «extensions» WSDL. Le format WSDL est un standard avec lequel on est capable de décrire tous les services web (et pas uniquement ceux utilisant WCF) indépendamment de la technologie qu ils emploient et de la plateforme sur laquelle ils sont exposés. Ainsi, il est tout à fait possible de consommer un service WCF avec un client java par exemple. L échange de données se fera au format SOAP. 3.3.1.2 Le format SOAP Le format SOAP est un protocole de transmission de messages. Le rôle de ce protocole est de définir des règles afin de codifier des échanges de type Requête Réponse. SOAP est une norme multiplateforme qui trouve son utilisation principale dans les services web pour assurer la compatibilité inter-plateforme. 3.3.2 Paramétrer la publication des métadonnées d un service. Pour permettre la publication des métadonnées de service, il suffit d éditer le fichier de configuration du service (App.config ou Web.Config selon les cas) et d ajouter les instructions suivantes : <system.servicemodel> <behaviors> <servicebehaviors> <behavior name="publicationmetadonnees"> <servicemetadata httpgetenabled="true" httpgeturl="/metadonnees"/> </behavior> </servicebehaviors> </behaviors> <services> <service name="mediathequeservice.mediathequeserviceimpl" behaviorconfiguration="publicationmetadonnees"> <endpoint address="" binding="basichttpbinding" contract="mediathequeservice.imediathequeservice"/> </service> </services> Dans ce fragment de configuration, on publie les métadonnées du service Médiathèque exposé avec IIS grâce { l utilisation du Behavior (ou comportement) «servicemetadata» qui prend en argument une méthode de publication (ici httpgetenabled= "true" ) mais aussi une URL { laquelle la description du service sera disponible (ici l url relative "/metadonnees"). Pour finir, il ne reste plus qu a activer ce comportement sur notre service en ajoutant le paramètre "behaviorconfiguration" suivi du nom du comportement précédemment défini. Voici ce que l on obtient alors quand on ouvre le fichier mediatheque.svc avec un navigateur :

21 Configuration et Hebergement de services WCF On observe que maintenant les métadonnées sont disponibles et peuvent être utilisées pour accéder au service. 3.4 Gestion des comportements de service 3.4.1 Définition Comme nous l avons vu dans le premier chapitre, de manière générale un Behavior sert { paramétrer le comportement local du service et il n affectera donc jamais directement le client. Il existe 3 types de Behaviors : Les Behaviors d opération Les Behaviors de endpoint Les Behaviors de service. Seuls ces derniers nous intéressent dans ce chapitre. 3.4.2 Déclaration et application des Behaviors Les Behaviors de niveau service se déclarent dans le fichier de configuration du service. La section de déclaration des Behaviors se délimite par <behaviors> et </behaviors>. Un comportement se place { l intérieur de ces balises entre les marques <behavior> et </behior> Un Behavior porte toujours un nom qui sera réutilisé pour appliquer le comportement à un service donné grâce { l argument "BehaviorConfiguration" de la balise Service. Cette nécessité d application du comportement { un service permet de définir plusieurs Behaviors, dans un fichier de configuration servant à plusieurs services, sans pour autant être obligé d appliquer tous les comportements, { tous les services décrits dans le fichier mais plutôt de faire de l application au cas par cas, service par service. L étude détaillée des différents comportements disponibles se fera tout au long du cursus quand l occasion se présentera

22 Configuration et Hebergement de services WCF 3.5 La configuration coté client Maintenant que nous savons plus précisément comment héberger un service WCF, nous allons voir maintenant en détail comment configurer une application cliente pour qu elle puisse utiliser le service WCF que nous venons d héberger. 3.5.1 La classe proxy clé de voute de WCF coté client. Nous l avons déj{ vu { plusieurs reprises, mais il semble important de le rappeler : La consommation d un service Web quel qu il soit et plus particulièrement d un service WCF, passe par l utilisation d une classe proxy. 3.5.2 Rôle et contenu d une classe proxy Le rôle d une classe proxy est de servir d intermédiaire entre un service et un client. Son rôle est principalement de masquer au programmeur toute la complexité de WCF, de telle sorte que ce dernier n ai { utiliser qu une simple instance de classe comme nous l avons vu dans le chapitre précédent. Une classe proxy contient au moins 3 éléments importants : Une implémentation locale des types métier dont le service a besoin pour fonctionner Une implémentation locale de chaque opération proposée par le service. Une implémentation du système de pile de canaux (nouveauté de ce chapitre). 3.5.2.1 Générer une classe proxy pour un service. Pour rappel, une classe proxy se génère à partir du document WSDL du service. Pour générer une classe proxy il est donc nécessaire que le service expose ses métadonnées. 3.5.2.1.1 Générer une classe proxy { partir de l utilitaire svcutil.exe svcutil.exe est un utilitaire en ligne de commande inclus dans le SDK de Windows et dont le rôle qui nous intéresse ici est de générer des classes proxy pour des services dont l adresse est passée en paramètre. Ce programme ce trouve normalement { l emplacement : c:\program Files\Microsoft SDKs\Windows\v6.0A\bin Dans sa forme la plus simple, cet utilitaire se lance en prenant en argument simplement l adresse de l emplacement des métadonnées de service et génère en sortie une classe proxy en c# ainsi qu un fichier de configuration qu il faudra renommer App.config avant de pouvoir l utiliser dans un projet. Ce cas a déj{ été abordé dans le chapitre d introduction. 3.5.2.1.1.1 Quelques arguments de svcutil. Argument Signification /d <repertoire> Spécifie explicitement l emplacement des fichiers générés. S il n est pas mentionné, les fichiers sont générés dans le répertoire de svcutil. /out :<fichier> Spécifie explicitement le nom du fichier proxy généré. S il n est pas mentionné, il est déduit des métadonnées. /config :<fichier> Spécifie explicitement le nom du fichier de configuration généré. S il n est pas mentionné, il s appelle output.config /mergeconfig Ajoute des données de configuration à un fichier déjà existant. Très utile si on veut ajouter directement la partie configuration WCF à un fichier de configuration d application existant. /noconfig Génère uniquement le fichier de code de la classe proxy. /l <CS VB> Spécifie explicitement le langage dans lequel le fichier de code doit être généré (c# ou Visual Basic). S il n est pas mentionné, il est écrit en c#. /async Demande { l utilitaire de générer une version asynchrone de chaque

23 Configuration et Hebergement de services WCF méthode en plus de la version synchrone classique. Utile pour ne pas bloquer le client lorsque le traitement ou le transfert de données est lent ou volumineux. Il est bien sur possible (et fortement recommandé) de combiner les options comme dans l exemple suivant : Svcutil /d d:\projets\mediatheque\ /out MediathequeClient.vb /config App.config /mergeconfig /l VB Dans cet exemple, Les fichiers seront places directement dans le répertoire du projet Médiathèque, la configuration WCF sera ajoutée à le configuration existante et le fichier de code sera généré en Visual Basic. 3.5.2.1.2 Générer une classe proxy à partir de Visual Studio Nous allons à présent voir comment aire la même chose avec Visual Studio 2008 de manière plus conviviale. Comme d habitude, le but est ici de générer automatiquement tous le code et la configuration nécessaire pour consommer notre service Médiathèque depuis un client lourd de type Winform. Pour pouvoir consommer notre service WCF, on fait un clic droit sur l application cliente dans le gestionnaire de projets puis on choisi «Ajouter une référence de service». A présent, il suffit de remplir le champ «Adresse» avec l URL des métadonnées du service puis de cliquer sur «Aller à». Visual Studio se connecte alors au serveur et lit le fichier WSDL, il en déduit donc les opérations exposée par le service et les affiche dans la liste «Operations». Il ne reste plus alors qu a nommer l espace de nom { invoquer localement pour utiliser le service puis à cliquer sur OK.

24 Configuration et Hebergement de services WCF Nous pouvons bien sur spécifier les mêmes options avancées qu avec svcutil en cliquant sur le bouton «avancé».

25 Configuration et Hebergement de services WCF Une fois toutes les options validées, tout est prêt coté client pour utiliser le service, nous avons bien une vision locale des opérations exposées par le service comme le montre la capture cidessous : 3.5.3 Consommer un service WCF sans pourvoir générer de classe proxy Pour finir ce chapitre, nous allons à présent voir comment on peut consommer un service WCF sans pour autant avoir accès à ses métadonnées. Il peut arriver parfois que les services WCF n exposent pas leurs métadonnées. Notamment pour des raisons de sécurité et de confidentialité mais aussi et surtout car cela permet de mettre en place un premier niveau de contrôle sur qui a accès au service. En effet, dans pareil cas, le seul moyen d accéder au service est de déj{ connaitre ses caractéristiques. Le fournisseur du service devra donc d abord donner manuellement { l utilisateur ce que le document WSDL aurai du lui fournir, c est { dire l adresse, le binding et l interface (sous forme de dll) mains aussi les types métiers qui rentrent en jeu Un tel cas de figure demande cependant de créer à la main tout ce que svcutil ou Visual Studio génèrent automatiquement notamment les canaux de communication. 3.5.3.1 Consommation manuelle du service Médiathèque. Pour les besoins de l exemple, on ajoute un nouveau projet de type Winform à notre solution puis on ajoute une référence vers le projet de DAO, pour récupérer les types film et dvd, et une référence vers le projet du service pour en récupérer l interface. Maintenant que les types et l interface du service sont connus de notre nouveau projet nous pouvons commencer le codage.

26 Configuration et Hebergement de services WCF //c# using MediathequeService; //le contrat using Mediatheque; //les types film et dvd namespace ConsoManuelle { public partial class frmconsomanuelle : Form { //Creation de l'usine à canaux private ChannelFactory<MediathequeService.IMediathequeService> canaux; public frmconsomanuelle() { InitializeComponent(); } private void PeuplerGrille() { //instantiation de l'usine à canaux canaux = new ChannelFactory<IMediathequeService>(new NetTcpBinding(), "net.tcp://127.0.0.1:4445"); } //Recupération du contract pour pouvoir //invoquer les opérations distantes IMediathequeService client = canaux.createchannel(); //Peuplement d'une DataGrid avec tous les films de la base DGFilms.DataSource = client.getfilmslist(); private void chargertoolstripmenuitem_click(object sender, EventArgs e) { PeuplerGrille(); } } }

27 Configuration et Hebergement de services WCF vb Imports Mediatheque 'types Imports MediathequeService 'contracts Imports System.ServiceModel 'plomberie WCF Public Class Form1 Private canaux As ChannelFactory(Of MediathequeService.IMediathequeService) Private Sub ChargerLesDonnéesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ChargerLesDonnéesToolStripMenuItem.Click peuplergrille() End Sub Private Sub peuplergrille() canaux = New ChannelFactory(Of IMediathequeService)(New NetTcpBinding(), "net.tcp://127.0.0.1:4445") End Sub End Class 'Recupération du contract pour pouvoir 'invoquer les opérations distantes Dim client As IMediathequeService = canaux.createchannel() 'Peuplement d'une DataGrid avec tous les films de la base DGFilms.DataSource = client.getfilmslist() Dans cet exemple, on utilise un objet ChannelFactory générique typé par notre contrat. L une des surcharges de ce constructeur prend en argument les deux éléments manquants du endpoint : Le Binding et l adresse. Ensuite, il ne reste plus qu a créer notre objet «client», du type du contrat et à le récupérer à l aide de la méthode createchannel() de l objet channelfactory. On dispose donc maintenant de toutes les méthodes exposées par notre service.

28 Configuration et Hebergement de services WCF 4 Conclusion : Ce chapitre est à présent terminé, vous devriez maintenant être capable de : Décrire précisément ce que signifie «héberger et configurer un service WCF». Expliquer comment se déroule une communication entre un client et un service WCF. Savoir choisir une solution d hébergement pour vos services WCF. Mettre en œuvre les différents types de bindings et savoir lequel est le plus adapté { vos besoins Configurer les endpoints d un service. Exposer un service par plusieurs endpoints Exposer les métadonnées d un service Configurer un client à partir des métadonnées du service Configurer un client { partir d une DLL de contrat (sans ses métadonnées) Dotnet France vous remercie d avoir suivi ce cours et espère qu il vous aura donné satisfaction. N hésitez pas { poser vos questions sur le forum du site web de l association.