Share via


Comment : héberger et exécuter un service Windows Communication Foundation de base

Il s'agit de la troisième des six tâches requises pour créer un service Windows Communication Foundation (WCF) de base et un client pouvant appeler le service. Pour disposer d'une vue d'ensemble des six tâches, consultez la rubrique Didacticiel de mise en route.

Cette rubrique décrit comment exécuter un service Windows Communication Foundation (WCF) de base. Cette procédure se compose des étapes suivantes :

  • Créer une adresse de base pour le service.
  • Créer un hôte de service pour le service.
  • Activer l'échange de métadonnées.
  • Ouvrir l'hôte de service.

La liste complète du code écrit dans cette tâche est fournie dans l'exemple qui suit la procédure. Ajoutez le code suivant dans la méthode Main() définie dans la classe Program. Cette classe a été générée lorsque vous avez créé la solution Service.

Pour configurer une adresse de base pour le service

  1. Créer une instance Uri pour l'adresse de base du service. Cet URI spécifie le schéma HTTP, votre ordinateur local, le numéro de port 8000 et le chemin ServiceModelSample/Service du service spécifié pour l'espace de noms du service dans le contrat de service.

Pour héberger le service

  1. Importez l'espace de noms System.ServiceModel.Description. Cette ligne de code doit être placée en haut du fichier Program.cs/Program.vb avec le reste des instructions using ou imports.

  2. Créez une nouvelle instance ServiceHost pour héberger le service. Vous devez spécifier le type qui implémente le contrat de service et l'adresse de base. Pour cet exemple, l'adresse de base est https://localhost:8000/ServiceModelSamples/Service et CalculatorService est le type qui implémente le contrat de service.

  3. Ajoutez une instruction try-catch qui intercepte un objet CommunicationException et ajoutez le code lors des trois étapes suivantes au bloc try. La clause catch doit afficher un message d'erreur puis appeler selfHost.Abort().

  4. Ajoutez un point de terminaison qui expose le service. Pour ce faire, vous devez spécifier le contrat que le point de terminaison expose, une liaison, et l'adresse pour le point de terminaison. Dans cet exemple, spécifiez ICalculator comme contrat, WSHttpBinding comme liaison et CalculatorService comme adresse. Remarquez ici que l'adresse de point de terminaison est une adresse relative. L'adresse complète du point de terminaison est la combinaison de l'adresse de base et de l'adresse de point de terminaison. Dans ce cas l'adresse complète est https://localhost:8000/ServiceModelSamples/Service/CalculatorService

  5. Activer l'échange de métadonnées. Pour ce faire, ajoutez un comportement des métadonnées du service. Dans un premier temps, créez une instance ServiceMetadataBehavior, affectez à la propriété HttpGetEnabled la valeur true, puis ajoutez le nouveau comportement au service. Pour plus d'informations sur les problèmes de sécurité lors de la publication des métadonnées, consultez Considérations sur la sécurité des métadonnées.

  6. Ouvrez le ServiceHost et attendez les messages entrants. Lorsque l'utilisateur appuie sur la touche ENTRÉE, fermez ServiceHost.

Pour vérifier que le service fonctionne

  1. Exécutez le service.exe à partir de Visual Studio. Lors de l'exécution sur Windows Vista, le service doit être exécuté avec les privilèges d'administrateur. Parce que Visual Studio a été exécuté avec les privilèges d'administrateur, service.exe est également exécuté avec ces mêmes privilèges. Vous pouvez aussi démarrer une nouvelle invite de commandes qui l'exécute avec les privilèges d'administrateur et y exécuter service.exe.

  2. Ouvrez Internet Explorer et accédez à la page de débogage du service à l'adresse https://localhost:8000/ServiceModelSamples/Service.

Exemple

L'exemple suivant inclut le contrat de service et l'implémentation d'étapes précédentes dans le didacticiel et héberge le service dans une application console. Compilez les éléments suivants dans un exécutable nommé Service.exe.

Veillez à référencer System.ServiceModel.dll lors de la compilation du code.

ms730935.note(fr-fr,VS.90).gifRemarque :
Les services tels que celui-ci requièrent que l'autorisation enregistre des adresses HTTP sur l'ordinateur pour écouter. Les comptes Administrateur possèdent cette autorisation, mais l'autorisation pour les espaces de noms HTTP doit être accordée aux comptes qui ne sont pas administrateur. Pour plus d'informations sur comment configurer des réservations d'espace de noms, consultez Configuration de HTTP et HTTPS. Lors de l'exécution sous Visual Studio, service.exe doit être exécuté avec les privilèges d'administrateur.

Le service est en cours d'exécution. Poursuivez avec Comment : créer un client Windows Communication Foundation. Pour obtenir des informations de dépannage, consultez Dépannage du didacticiel de mise en route.

Voir aussi

Autres ressources

Getting Started Sample
Self-Host