Hôte de service WCF (WcfSvcHost.exe)

L’Hôte de service Windows Communication Foundation (WCF) (WcfSvcHost.exe) vous permet de lancer le débogueur Visual Studio (F5) pour héberger et tester automatiquement un service que vous avez implémenté. Vous pouvez ensuite tester le service à l’aide du client test WCF (WcfTestClient.exe), ou de votre propre client, afin de rechercher et de résoudre les erreurs potentielles.

Hôte de service WCF

L’hôte de service WCF énumère les services contenus dans un projet de service WCF, charge la configuration du projet et effectue l’instanciation d’un hôte pour chaque service trouvé. Cet outil est intégré à Visual Studio via le modèle Service WCF et est appelé lorsque vous commencez le débogage de votre projet.

Grâce à l’utilisation de l’Hôte de service WCF, vous pouvez héberger un service WCF (au sein d’un projet Bibliothèque du service WCF) sans écrire de code supplémentaire et sans se limiter à un hôte spécifique pendant le développement.

Notes

L’hôte de service WCF ne prend pas en charge la confiance partielle. Si vous souhaitez utiliser un service WCF dans un environnement de confiance partielle, n’utilisez pas le modèle du projet de bibliothèque de service WCF dans Visual Studio pour générer votre service. À la place, créez un nouveau site web dans Visual Studio en choisissant le modèle de site web de service de WCF qui peut héberger le service dans un serveur Web sur lequel la confiance partielle WCF est prise en charge.

Types de projet hébergés par l'hôte de service WCF

L’Hôte de service WCF peut héberger les types de projets Bibliothèque du service WCF suivants : Bibliothèque du service WCF, Bibliothèque du service de workflow séquentiel, Bibliothèque du service de workflow de l’ordinateur d’état et Bibliothèque du service de syndication. L’Hôte de service WCF peut également héberger les services qui peuvent être ajoutés à un projet Bibliothèque du service à l’aide de la fonction Ajouter un élément. Parmi ces services, on compte le service WCF, le service de l’ordinateur d’état WF, le service séquentiel WF, le service de l’ordinateur d’état WF XAML et le service séquentiel WF XAML.

Toutefois, il est à noter que l'outil ne vous aidera pas à configurer un hôte. Pour cette tâche, vous devez modifier le fichier App.config manuellement. L'outil ne permet pas non plus de valider les fichiers de configuration définis par l'utilisateur.

Attention

Vous ne devez pas utiliser l’Hôte de service WCF pour héberger des services au sein d’un environnement de production, car il n’a pas été conçu dans ce but. L’Hôte de service WCF ne prend pas en charge la fiabilité, la sécurité et les exigences de facilité de gestion propres à ce type d’environnement. Utilisez plutôt IIS car cette solution présente une fiabilité et des fonctionnalités de surveillance plus élevées ; elle constitue en outre la solution recommandée pour les services d’hébergement. Une fois que vous avez terminé le développement de vos services, vous devez effectuer une migration de ceux-ci depuis l’Hôte de service WCF vers IIS.

Scénarios d'utilisation de l'hôte de service WCF dans Visual Studio

Le tableau suivant répertorie tous les paramètres de la boîte de dialogue Arguments de la ligne de commande qui s’ouvre lorsque vous cliquez avec le bouton droit sur votre projet dans l’Explorateur de solutions dans Visual Studio en sélectionnant Propriétés, puis en cliquant sur l’onglet Débogage et sur Démarrer le projet. Ces paramètres sont utiles pour configurer l’Hôte de service WCF.

Paramètre Signification
/client Paramètre facultatif qui spécifie le chemin d’accès à un fichier exécutable à utiliser une fois les services hébergés. Il permet de lancer le client test WCF une fois l’hébergement effectué.
/clientArg Spécifie une chaîne en tant qu'argument passé à l'application cliente personnalisée.
/? Affiche le texte de l'aide.

Utilisation du client test WCF

Après que vous avez créé un projet de service WCF et appuyé sur la touche F5 pour démarrer le débogueur, l’Hôte de service WCF commence à héberger tous les services trouvés dans votre projet. Le client test WCF ouvre et affiche automatiquement une liste de points de terminaison de service définis dans le fichier de configuration. Dans la fenêtre principale, vous pouvez tester les paramètres et appeler votre service.

Pour vous assurer que le client test WCF est utilisé, cliquez avec le bouton droit sur votre projet dans l’Explorateur de solutions de Visual Studio, sélectionnez Propriétés, puis l’onglet Débogage. Cliquez sur Démarrer le projet et vérifiez que les éléments suivants s’affichent dans la boîte de dialogue Arguments de ligne de commande.

/client:WcfTestClient.exe

Utilisation d'un client personnalisé

Pour utiliser un client personnalisé, cliquez avec le bouton droit sur votre projet dans l’Explorateur de solutions de Visual Studio, sélectionnez Propriétés, puis sélectionnez l’onglet Débogage. Cliquez sur Démarrer le projet et modifiez le paramètre /client dans la boîte de dialogue Arguments de ligne de commande pour pointer vers votre client personnalisé, comme indiqué dans l’exemple suivant.

/client:"path/CustomClient.exe"

Lorsque vous appuyez sur la touche F5 pour redémarrer le service, l’Hôte de service WCF démarre automatiquement votre client personnalisé quand vous lancez le débogueur.

Vous pouvez également utiliser le paramètre /clientArg: pour spécifier une chaîne en tant qu’argument qui est passé à l’application cliente personnalisée, comme indiqué dans l’exemple suivant.

/client:"path/CustomClient.exe" /clientArg:"arguments that are passed to Client"

Par exemple, si vous utilisez le modèle de bibliothèque du service de syndication, vous pouvez utiliser les arguments de la ligne de commandes suivante :

/client:iexplore.exe /clientArgs:http://localhost:8731/Design_Time_Addresses/Feed1/

Spécification d'aucun client

Pour spécifier qu’aucun client n’est utilisé après l’hébergement du service WCF, cliquez avec le bouton droit sur votre projet dans l’Explorateur de solutions de Visual Studio, sélectionnez Propriétés, puis l’onglet Débogage. Cliquez sur Démarrer le projet et laissez la boîte de dialogue Arguments de ligne de commande vide.

Utilisation d'un hôte personnalisé

Pour utiliser un hôte personnalisé, cliquez avec le bouton droit sur votre projet dans l’Explorateur de solutions de Visual Studio, sélectionnez Propriétés, puis l’onglet Débogage. Cliquez sur Démarrer le programme externe et entrez le chemin d’accès complet à l’hôte personnalisé. Vous pouvez également utiliser la boîte de dialogue Arguments de la ligne de commande pour spécifier les arguments à passer à l’hôte.

Interface utilisateur de l'Hôte de service WCF

Lors de l’appel initial de l’Hôte de service WCF (en appuyant sur la touche F5 dans Visual Studio), la fenêtre Hôte de service WCF s’ouvre automatiquement. Lorsque l’Hôte de service WCF est en cours d’exécution, l’icône du programme apparaît dans la zone de notification. Double-cliquez sur l’icône pour ouvrir la fenêtre Hôte de service WCF.

Lorsque des erreurs surviennent pendant l’hébergement de service, la boîte de dialogue de l’Hôte de service WCF s’ouvre et affiche les informations correspondantes.

La fenêtre principale Hôte de service WCF contient deux menus :

  • Le menu Fichier contient les commandes Fermer et Quitter. Lorsque vous cliquez sur Fermer, la boîte de dialogue Hôte de service WCF se referme, mais les services restent hébergés. Lorsque vous cliquez sur Quitter, l’Hôte de service WCF est également arrêté. Cela arrête également tous les services hébergés.

  • Le menu Aide contient la commande À propos de qui affiche des informations sur la version. Il contient également la commande Aide qui permet d’ouvrir un fichier d’aide.

La fenêtre principale Hôte de service WCF contient deux zones :

  • La première zone est Service. Elle contient une liste qui affiche des informations de base sur tous les services. Ces informations incluent :

    • Service : répertorie tous les services.

    • État : répertorie l’état du service. Les valeurs valides sont « Démarré », « Arrêté » et « Erreur ».

    • Adresse de métadonnées : affiche l’adresse des métadonnées des services.

  • La deuxième zone est Informations supplémentaires. Elle affiche une explication détaillée de l’état d’un service lorsque la ligne de service spécifique est sélectionnée dans la zone Service. Si l'état est Erreur, vous pouvez consulter le message d'erreur complet qui s'affiche à l'écran.

Arrêt de l'Hôte de service WCF

Vous pouvez arrêter l’Hôte de service WCF en utilisant l’une des quatre méthodes suivantes :

  • Arrêtez la session de débogage dans Visual Studio.

  • Sélectionnez Quitter dans le menu Fichier, dans la fenêtre Hôte de service WCF.

  • Sélectionnez Quitter dans le menu contextuel de l’Hôte de service WCF, dans la zone de notification du système.

  • Quittez le client test WCF s’il est en cours d’utilisation.

Utilisation de l'hôte de service sans privilège d'administrateur

Pour permettre aux utilisateurs qui ne disposent pas de privilèges d’administrateur de développer des services WCF, une liste de contrôle d’accès (ACL, Access Control List) est créée pour l’espace de noms http://+:8731/Design_Time_Addresses" pendant l’installation de Visual Studio. La liste ACL a la valeur (UI), qui inclut tous les utilisateurs interactifs ayant ouvert une session sur l'ordinateur. Les administrateurs peuvent ajouter ou supprimer des utilisateurs de cette liste ou ouvrir des ports supplémentaires. Cette liste ACL permet aux utilisateurs d’exécuter l’hôte automatique de service WCF (wcfSvcHost.exe) sans devoir obtenir au préalable des privilèges d’administrateur.

Vous pouvez modifier l’accès grâce à l’outil netsh.exe dans Windows Vista sous le compte d’administrateur avec élévation de privilèges. Ceci est un exemple d'utilisation de netsh.exe .

netsh http add urlacl url=http://+:8001/MyService user=<domain>\<user>

Pour plus d’informations sur netsh.exe, consultez « Utilisation de l’outil Netsh.exe et des commutateurs de ligne de commandes (page pouvant être en anglais) ».

Voir aussi