Partager via


Points de terminaison SOAP et HTTP

L’exemple SoapAndHttpEndpoints montre comment implémenter un service RPC, et l’exposer aux formats SOAP et POX (Plain Old XML) à l’aide du modèle de programmation Web WCF. Pour plus d'informations sur la liaison HTTP du service, consultez l’exemple Service HTTP de base. Cet exemple se concentre sur les détails ayant trait à l’exposition du même service sur SOAP et HTTP au moyen de différentes liaisons.

Illustre le

Exposition d’un service RPC sur SOAP et HTTP à l’aide de WCF.

Discussion

Cet exemple est constitué de deux composants : un projet d’application Web (Service) qui contient un service WCF et une application console (Client) qui appelle des opérations de service à l’aide de liaisons SOAP et HTTP.

Le service WCF expose 2 opérations, GetData et PutData, qui renvoient la chaîne passée en entrée. Les opérations de service sont annotées avec WebGetAttribute et WebInvokeAttribute. Ces attributs contrôlent la projection HTTP de ces opérations. Elles sont aussi annotées avec OperationContractAttribute, ce qui permet leur exposition sur des liaisons SOAP. La méthode PutData du service lève un WebFaultException, qui est renvoyé sur HTTP avec le code d’état HTTP et sur SOAP en tant qu’erreur SOAP.

Le fichier Web.config configure le service WCF avec 3 points de terminaison :

  • le point de terminaison ~/service.svc/mex qui expose les métadonnées du service pour l'accès des clients SOAP ;

  • le point de terminaison ~/service.svc/http qui permet aux clients d’accéder au service en utilisant la liaison HTTP ;

  • le point de terminaison ~/service.svc/soap qui permet aux clients d’accéder au service en utilisant la liaison SOAP sur HTTP.

Le point de terminaison HTTP est configuré avec un point de terminaison <webHttp> standard où helpEnabled a la valeur true. Par conséquent, le service expose sous ~/service.svc/http/help une page d'aide XHTML que les clients HTTP peuvent utiliser pour accéder au service.

Le projet client illustre l’accès au service à l’aide d’un proxy SOAP (généré via Ajouter une référence de service) et à l’aide de WebClient.

L'exemple se compose d'un service hébergé sur le Web et d'une application console. Lorsque l'application console s'exécute, le client adresse des requêtes au service et affiche les informations pertinentes des réponses dans la fenêtre de console.

Exécution de l'exemple

  1. Ouvrez la solution de l'exemple des points de terminaison SOAP et HTTP.

  2. Appuyez sur Ctrl+Maj+B pour générer la solution.

  3. Si la fenêtre Explorateur de solutions n’est pas déjà ouverte, appuyez sur CTRL+W+S pour l’ouvrir.

  4. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet Service et placez le curseur sur l’option de menu contextuel Débogage pour faire apparaître le menu contextuel Démarrer une nouvelle instance. Cliquez sur Démarrer une nouvelle instance. Cette opération lance le serveur de développement ASP.NET, qui héberge le service.

  5. Dans les fenêtres de l’Explorateur de solutions, cliquez avec le bouton droit sur le projet Client et placez le curseur sur l’option de menu contextuel Débogage pour faire apparaître le menu contextuel Démarrer une nouvelle instance. Cliquez sur Démarrer une nouvelle instance.

  6. La fenêtre de console du client apparaît et fournit l'URI du service en cours d'exécution, ainsi que l'URI de sa page d'aide HTML. Vous pouvez à tout moment consulter la page d'aide HTML en tapant son URI dans un navigateur.

  7. Lorsque l'exemple s'exécute, le client écrit l'état de l'activité actuelle.

  8. Appuyez sur une touche quelconque pour arrêter l'application console Client.

  9. Appuyez sur MAJ+F5 pour arrêter le débogage du service.

  10. Dans la zone de notification Windows, cliquez avec le bouton droit sur l’icône du serveur de développement ASP.NET et sélectionnez Arrêter dans le menu contextuel.