Partager via


Hébergement dans une application de service Windows

Les services Windows (autrefois connus comme services Windows NT) fournissent un modèle de processus particulièrement adapté aux applications qui doivent exister dans un exécutable à durée d’exécution longue et n’affichent aucune forme d’interface utilisateur. La durée de vie de processus d'une application de service Windows est gérée par le gestionnaire de contrôle des services (SCM) qui vous autorise à démarrer, arrêter et suspendre les applications de service Windows. Vous pouvez configurer un processus de service Windows pour qu’il démarre automatiquement lorsque l’ordinateur démarre, créant ainsi un environnement d’hébergement adapté pour les applications « toujours actives ». Pour plus d’informations sur les applications de service Windows, consultez Applications de service Windows.

Les applications qui hébergent des services Windows Communication Foundation (WCF) à durée d’exécution longue partagent de nombreuses caractéristiques avec les services Windows. Notamment, les services WCF sont des exécutables du serveur à durée d’exécution longue qui n’interagissent pas directement avec l’utilisateur et, par conséquent, n’implémentent aucune forme d’interface utilisateur. Par conséquent, l’hébergement de services WCF dans une application de service Windows est l’une des solutions pour compiler des applications WCF à durée d’exécution longue robustes.

Souvent, les développeurs WCF doivent décider s’il faut héberger leur application WCF dans une application de service Windows, dans les services IIS (Internet Information Services) ou dans l’environnement d’hébergement du service d’activation des processus Windows (WAS). Vous pouvez envisager d'utiliser des applications de service Windows dans les conditions suivantes :

  • Votre application requiert l'activation explicite. Par exemple, vous devez utiliser des services Windows lorsque votre application doit démarrer automatiquement quand le serveur démarre au lieu d'être démarrée dynamiquement en réponse au premier message entrant.

  • Le processus qui héberge votre application doit rester actif une fois démarré. Une fois démarré, un processus de service Windows reste actif à moins qu'il ne soit explicitement interrompu par l'administrateur du serveur via le gestionnaire de contrôle des services. Les applications hébergées dans IIS ou WAS peuvent être démarrées et arrêtées dynamiquement pour une utilisation optimale des ressources système. Les applications qui requièrent un contrôle explicite sur la durée de vie de leur processus d'hébergement doivent utiliser des services Windows au lieu d'IIS ou WAS.

  • Votre service WCF doit s’exécuter sous Windows Server 2003 et utiliser des transports autres que HTTP. Sous Windows Server 2003, l’environnement d’hébergement IIS 6.0 est restreint uniquement à la communication HTTP. Les applications de service Windows ne sont pas soumises à cette restriction et peuvent utiliser tous les supports WCF de transport, y compris net.tcp, net.pipe et net.msmq.

Procédures

  1. Créez une application de service Windows. Vous pouvez écrire des applications de service Windows en code managé à l'aide des classes dans l'espace de noms System.ServiceProcess. Cette application doit inclure une classe qui hérite de ServiceBase.

  2. Liez la durée de vie des services WCF à la durée de vie de l’application de service Windows. En général, vous souhaitez que les services WCF hébergés dans une application de service Windows deviennent actifs lorsque le service d’hébergement démarre, cessent d’écouter les messages lorsque le service d’hébergement est arrêté et interrompent le processus d’hébergement lorsque le service WCF rencontre une erreur. Cela peut être accompli de la façon suivante :

    Les applications de service Windows qui hébergent les services WCF sont déployées et gérées de la même façon que les applications de service Windows qui n’utilisent pas WCF.

Voir aussi