Windows Service Host
Cet exemple montre un service Windows Communication Foundation (WCF) hébergé dans un service Windows managé. Les services Windows sont contrôlés à l'aide de l'applet Services du Panneau de configuration et peuvent être configurés pour démarrer automatiquement après un redémarrage du système. L'exemple se compose d'un programme client et d'un programme de service Windows. Le service est implémenté en tant que programme .exe et contient son propre code d'hébergement. Dans d'autres environnements d'hébergement, tels que WAS (Windows Process Activation Services) ou IIS (Internet Information Services), vous n'avez pas besoin d'écrire le code d'hébergement.
Remarque : |
---|
La procédure d'installation ainsi que les instructions de génération relatives à cet exemple figurent en fin de rubrique. |
Après avoir généré ce service, il doit être installé avec l'utilitaire Installutil.exe comme tout autre service Windows. Si vous voulez apporter des modifications au service, vous devez d'abord le désinstaller avec installutil /u
. Les fichiers Setup.bat et Cleanup.bat inclus dans cet exemple sont les commandes pour installer et démarrer le service Windows, et pour fermer et désinstaller le service Windows. Le service WCF peut répondre aux clients uniquement si le service Windows est en cours d'exécution. Si vous arrêtez le service Windows en utilisant l'applet Services du Panneau de configuration et si vous exécutez le client, une exception EndpointNotFoundException est levée lorsqu'un client essaie d'accéder au service. Si vous redémarrez le service Windows et exécutez à nouveau le client, la communication réussit.
Le code de service inclut une classe Installer, une classe d'implémentation de service WCF qui implémente le contrat ICalculator, et une classe de service Windows qui agit l'hôte d'exécution. La classe Installer, qui hérite de Installer, permet à l'outil Installutil.exe d'installer le programme comme un service NT. La classe d'implémentation du service, WcfCalculatorService
, est un service WCF qui implémente un contrat de service de base. Ce service WCF est hébergé dans une classe de service Windows appelée WindowsCalculatorService
. Pour prétendre au titre de service Windows, la classe hérite de ServiceBase et implémente les méthodes OnStart et OnStop. Dans OnStart, un objet ServiceHost est créé pour le type WcfCalculatorService
et ouvert. Dans OnStop, le ServiceHost est fermé en appelant la méthode Close de l'objet ServiceHost. L'adresse de base de l'hôte est configurée à l'aide de l'élément <add> of <baseAddress>, qui est un enfant de <baseAddresses>, qui est un enfant de l'élément <host>, qui est un enfant de l'élément <service>.
Le point de terminaison défini utilise l'adresse de base et un wsHttpBinding Element. L'exemple suivant illustre la configuration de l'adresse de base ainsi que le point de terminaison qui expose le CalculatorService.
<services>
<service name="Microsoft.ServiceModel.Samples.WcfCalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="https://localhost:8000/ServiceModelSamples/service"/>
</baseAddresses>
</host>
<!-- This endpoint is exposed at the base address provided by host: https://localhost:8000/ServiceModelSamples/service. -->
<endpoint address=""
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
...
</service>
</services>
Lorsque vous exécutez l'exemple, les demandes et réponses de l'opération sont affichées dans les fenêtres de console du service et du client. Appuyez sur ENTER dans chaque fenêtre de console pour arrêter le service et le client.
Pour configurer, générer et exécuter l'exemple
Assurez-vous d'avoir effectué la procédure indiquée à la section Procédure d'installation unique pour les exemples Windows Communication Foundation.
Pour générer l'édition C# ou Visual Basic .NET de la solution, suivez les instructions figurant à la section Génération des exemples Windows Communication Foundation.
Après avoir généré la solution, exécutez Setup.bat pour installer le service Windows à l'aide de l'outil Installutil.exe. Le service doit apparaître dans Services.
Pour exécuter l'exemple dans une configuration à un ou plusieurs ordinateurs, suivez les instructions indiquées dans Exécution des exemples Windows Communication Foundation.
Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.