Hébergement de servicesHosting Services

Pour devenir actif, un service doit être hébergé dans un environnement d'exécution qui le crée et contrôle son contexte et sa durée de vie.To become active, a service must be hosted within a run-time environment that creates it and controls its context and lifetime. Services de Windows Communication Foundation (WCF) sont conçus pour s’exécuter dans n’importe quel processus Windows qui prend en charge le code managé.Windows Communication Foundation (WCF) services are designed to run in any Windows process that supports managed code.

WCF fournit un modèle de programmation unifié pour la création d’applications orientées service.WCF provides a unified programming model for building service-oriented applications. Ce modèle de programmation reste cohérent et est indépendant de l'environnement d'exécution dans lequel le service est déployé.This programming model remains consistent and is independent of the run-time environment in which the service is deployed. En pratique, cela signifie que le code de vos services est essentiellement le même quelle que soit l'option d'hébergement.In practice, this means that the code for your services looks much the same whatever the hosting option.

Ces options d'hébergement vont de l'exécution dans une application console à une exécution dans des environnements serveur tels qu'un service Windows dans un processus de travail managé par les services IIS (Internet Information Services) ou WAS (Windows Process Activation Services).These hosting options range from running inside a console application to server environments such as a Windows service running within a worker process managed by Internet Information Services (IIS) or by Windows Process Activation Service (WAS). Les développeurs choisissent l'environnement d'hébergement qui répond aux spécifications de déploiement du service.Developers choose the hosting environment that satisfies the service's deployment requirements. Ces spécifications peuvent dériver de la plateforme sur laquelle l'application est déployée, du transport sur lequel envoyer et recevoir des messages ou du type de recyclage de processus et tout autre gestion de processus indispensable pour garantir la disponibilité adéquate, ou d'autres impératifs de gestion ou de fiabilité.These requirements might derive from the platform on which the application is deployed, the transport on which it must send and receive messages, or on the type of process recycling and other process management required to ensure adequate availability, or on some other management or reliability requirements. La section suivante fournit des informations et des instructions sur les options d'hébergement.The next section provides information and guidance on hosting options.

Options d'hébergementHosting Options

Auto-hébergement dans une application managéeSelf-Hosting in a Managed Application

Services WCF peuvent être hébergés dans toute application managée.WCF services can be hosted in any managed application. Il s'agit de l'option la plus souple car l'infrastructure à déployer est la plus faible.This is the most flexible option because it requires the least infrastructure to deploy. Vous incorporez le code pour le service à l'intérieur du code d'application managée, puis créez et ouvrez une instance de ServiceHost pour rendre le service disponible.You embed the code for the service inside the managed application code and then create and open an instance of the ServiceHost to make the service available. Pour plus d'informations, voir Procédure : Héberger un Service WCF dans une Application managée.For more information, see How to: Host a WCF Service in a Managed Application.

Cette option active deux scénarios courants : Services WCF en cours d’exécution à l’intérieur d’applications console et les applications clientes riches tels que ceux basés sur Windows Presentation Foundation (WPF) ou Windows Forms (WinForms).This option enables two common scenarios: WCF services running inside console applications and rich client applications such as those based on Windows Presentation Foundation (WPF) or Windows Forms (WinForms). Hébergement d’un service WCF à l’intérieur d’une application console est généralement utile pendant la phase de développement de l’application.Hosting a WCF service inside a console application is typically useful during the application's development phase. Cela simplifie son débogage, l'obtention des informations de suivi pour déterminer ce qui se passe à l'intérieur de l'application, et son déplacement en la copiant vers un nouvel emplacement.This makes them easy to debug, easy to get trace information from to find out what is happening inside of the application, and easy to move around by copying them to new locations. Cette option d’hébergement rend également plus facile pour les applications clientes riches, telles que les applications WPF et WinForms, pour communiquer avec le monde extérieur.This hosting option also makes it easy for rich client applications, such as WPF and WinForms applications, to communicate with the outside world. Par exemple, un client de collaboration pair à pair qui utilise WPF pour son interface utilisateur et héberge également un service WCF qui permet aux autres clients pour vous connecter à celui-ci et partager des informations.For example, a peer-to-peer collaboration client that uses WPF for its user interface and also hosts a WCF service that allows other clients to connect to it and share information.

Services Windows managésManaged Windows Services

Cette option d’hébergement consiste à enregistrer le domaine d’application (AppDomain) qui héberge un service WCF en tant qu’un Service Windows managé (anciennement service NT) afin que la durée de vie du processus du service est contrôlée par le Gestionnaire de contrôle des services (SCM) pour Services de Windows.This hosting option consists of registering the application domain (AppDomain) that hosts an WCF service as a managed Windows Service (formerly known as NT service) so that the process lifetime of the service is controlled by the service control manager (SCM) for Windows services. Comme l'option d'auto-hébergement, ce type d'environnement d'hébergement requiert que du code d'hébergement soit écrit dans le cadre de l'application.Like the self-hosting option, this type of hosting environment requires that some hosting code is written as part of the application. Le service est implémenté comme un Service Windows et comme un service WCF en provoquant qu’elle hérite la ServiceBase classe, ainsi que de l’interface de contrat de service à partir d’un WCF.The service is implemented as both a Windows Service and as an WCF service by causing it to inherit from the ServiceBase class as well as from an WCF service contract interface. Le ServiceHost est ensuite créé et ouvert dans une méthode OnStart(String[]) substituée et fermée dans une méthode OnStop() substituée.The ServiceHost is then created and opened within an overridden OnStart(String[]) method and closed within an overridden OnStop() method. Une classe Installer qui hérite de Installer doit également être implémentée pour permettre au programme d'être installé comme un service Windows par l'outil Installutil.exe.An installer class that inherits from Installer must also be implemented to allow the program to be installed as a Windows Service by the Installutil.exe tool. Pour plus d'informations, voir Procédure : Héberger un Service WCF dans un Service Windows managé.For more information, see How to: Host a WCF Service in a Managed Windows Service. Le scénario activé par l’option d’hébergement du Service Windows managé est celle d’un service WCF de longs hébergé en dehors d’IIS dans un environnement sécurisé qui n’est pas activé en message.The scenario enabled by the managed Windows Service hosting option is that of a long-running WCF service hosted outside of IIS in a secure environment that is not message-activated. La durée de vie du service est contrôlée par le système d'exploitation.The lifetime of the service is controlled instead by the operating system. Cette option d'hébergement est disponible dans toutes les versions de Windows.This hosting option is available in all versions of Windows.

Services IIS (Internet Information Services)Internet Information Services (IIS)

L’option d’hébergement IIS est intégré à ASP.NET et utilise les fonctionnalités qu'offrent de ces technologies, telles que les processus recyclage, l’arrêt inactif, de processus sur l’intégrité et de l’activation basée sur le message.The IIS hosting option is integrated with ASP.NET and uses the features these technologies offer, such as process recycling, idle shutdown, process health monitoring, and message-based activation. Sur les systèmes d'exploitation Windows XPWindows XP et Windows Server 2003Windows Server 2003 , il s'agit de la solution par défaut pour héberger les applications de service Web qui sont fortement sollicitées et doivent être très évolutives.On the Windows XPWindows XP and Windows Server 2003Windows Server 2003 operating systems, this is the preferred solution for hosting Web service applications that must be highly available and highly scalable. Les services IIS offrent également la facilité de gestion intégrée que les clients attendent d'un produit serveur de classe d'entreprise.IIS also offers the integrated manageability that customers expect from an enterprise-class server product. Cette option d'hébergement requiert que les services IIS soient configurés correctement, mais n'exige pas l'écriture d'un code d'hébergement dans le cadre de l'application.This hosting option requires that IIS be properly configured, but it does not require that any hosting code be written as part of the application. Pour plus d’informations sur la configuration d’IIS à l’hébergement d’un service WCF, consultez Comment : Héberger un Service WCF dans IIS.For more information about how to configure IIS hosting for a WCF service, see How to: Host a WCF Service in IIS.

Notez que les services hébergés par IIS peuvent utiliser uniquement le transport HTTP.Note that IIS-hosted services can only use the HTTP transport. Son implémentation dans IIS 5.1 a introduit des limitations dans Windows XPWindows XP.Its implementation in IIS 5.1 has introduced some limitations in Windows XPWindows XP. L’activation basée sur message fournie pour un service WCF par IIS 5.1 sur Windows XPWindows XP bloque tout autre service WCF auto-hébergé sur le même ordinateur d’utiliser le port 80 pour communiquer.The message-based activation provided for an WCF service by IIS 5.1 on Windows XPWindows XP blocks any other self-hosted WCF service on the same computer from using port 80 to communicate. Services WCF peuvent être exécutés dans le même processus de travail/Pool AppDomain/Application en tant que d’autres applications quand ils sont hébergés par IIS 6.0 sur Windows Server 2003Windows Server 2003.WCF services can run in the same AppDomain/Application Pool/Worker Process as other applications when hosted by IIS 6.0 on Windows Server 2003Windows Server 2003. Mais étant donné que WCF et IIS 6.0 utilisent la pile HTTP en mode noyau (HTTP.sys), IIS 6.0 peuvent partager le port 80 avec d’autres services WCF auto-hébergés en cours d’exécution sur le même ordinateur, contrairement à IIS 5.1.But because WCF and IIS 6.0 both use the kernel-mode HTTP stack (HTTP.sys), IIS 6.0 can share port 80 with other self-hosted WCF services running on the same machine, unlike IIS 5.1.

Windows Process Activation Service (WAS)Windows Process Activation Service (WAS)

Le service WAS (Windows Process Activation Service) est le nouveau mécanisme d'activation de processus pour Windows Server 2008Windows Server 2008 , également disponible sur Windows VistaWindows Vista.Windows Process Activation Service (WAS) is the new process activation mechanism for the Windows Server 2008Windows Server 2008 that is also available on Windows VistaWindows Vista. Il conserve le modèle de processus IIS 6.0 familier (pools d’applications et activation de processus basée sur message) et l’hébergement des fonctionnalités (telles que la protection contre les pannes rapide sur l’intégrité et recyclage), mais il supprime la dépendance sur HTTP à partir de l’activation architecture.It retains the familiar IIS 6.0 process model (application pools and message-based process activation) and hosting features (such as rapid failure protection, health monitoring, and recycling), but it removes the dependency on HTTP from the activation architecture. IIS 7.0 utilise WAS pour accomplir l’activation basée sur le message via HTTP.IIS 7.0 uses WAS to accomplish message-based activation over HTTP. Les composants WCF supplémentaires s’intègrent aussi dans le service WAS pour assurer l’activation basée sur un message sur les autres protocoles WCF prend en charge, tels que TCP, MSMQ et canaux nommés.Additional WCF components also plug into WAS to provide message-based activation over the other protocols that WCF supports, such as TCP, MSMQ, and named pipes. Cela permet aux applications qui utilisent des protocoles de communication d'utiliser les fonctionnalités IIS (telles que le recyclage de processus, la protection rapide contre les pannes et le système de configuration commun) qui étaient réservées exclusivement aux applications basées sur HTTP.This allows applications that use communication protocols to use the IIS features such as process recycling, rapid fail protection, and the common configuration system that were only available to HTTP-based applications.

Cette option d'hébergement requiert que les services WAS soient configurés correctement, mais n'exige pas l'écriture d'un code d'hébergement dans le cadre de l'application.This hosting option requires that WAS be properly configured, but it does not require you to write any hosting code as part of the application. Pour plus d’informations sur la configuration de l’hébergement WAS, consultez Comment : Héberger un Service WCF dans WAS.For more information about how to configure WAS hosting, see How to: Host a WCF Service in WAS.

Choix d'un environnement d'hébergementChoosing a Hosting Environment

Le tableau suivant résume certains avantages et scénarios clés associés à chacune des options d'hébergement.The following table summarizes some of the key benefits and scenarios associated with each of the hosting options.

Environnement d'hébergementHosting Environment Scénarios courantsCommon Scenarios Avantages et limitations clésKey Benefits and Limitations
Application managée (« auto-hébergée »)Managed Application ("Self-Hosted") -Applications consoles utilisées pendant le développement.- Console applications used during development.
-WinForm élaborées et les applications client WPF l’accès aux services.- Rich WinForm and WPF client applications accessing services.
-Flexible.- Flexible.
-Facile à déployer.- Easy to deploy.
-N’est pas une solution d’entreprise pour les services.- Not an enterprise solution for services.
Services Windows (autrefois appelés services NT)Windows Services (formerly known as NT services) -Un longue service WCF hébergé en dehors d’IIS.- A long-running WCF service hosted outside of IIS. -Durée de vie de processus de Service contrôlée par le système d’exploitation, ne pas activé par message.- Service process lifetime controlled by the operating system, not message-activated.
-Prise en charge par toutes les versions de Windows.- Supported by all versions of Windows.
-Environnement sécurisé.- Secure environment.
IIS 5.1, IIS 6.0IIS 5.1, IIS 6.0 -Exécuter un service WCF côte à côte avec ASP.NET contenu sur Internet en utilisant le protocole HTTP.- Running a WCF service side-by-side with ASP.NET content on the Internet using the HTTP protocol. -Recyclage de processus.- Process recycling.
-Inactive s’est arrêté.- Idle shutdown.
-Traiter l’analyse du fonctionnement.- Process health monitoring.
-Activation basée sur message.- Message-based activation.
-HTTP uniquement.- HTTP only.
Windows Process Activation Service (WAS)Windows Process Activation Service (WAS) -Exécution d’un service WCF sans installer IIS sur Internet à l’aide de différents protocoles de transport.- Running a WCF service without installing IIS on the Internet using various transport protocols. -IIS n’est pas nécessaire.- IIS is not required.
-Recyclage de processus.- Process recycling.
-Inactive s’est arrêté.- Idle shutdown.
-Traiter l’analyse du fonctionnement.- Process health monitoring.
-Activation basée sur message.- Message-based activation.
-Fonctionne avec HTTP, TCP, canaux nommés et MSMQ.- Works with HTTP, TCP, named pipes, and MSMQ.
IIS 7,0IIS 7.0 -Exécution d’un service WCF avec contenu ASP.NET.- Running a WCF service with ASP.NET content.
-Exécution d’un service WCF sur Internet à l’aide de différents protocoles de transport.- Running a WCF service on the Internet using various transport protocols.
-A des avantages.- WAS benefits.
-Intégré avec du contenu ASP.NET et IIS.- Integrated with ASP.NET and IIS content.

Le choix d'un environnement d'hébergement dépend de la version de Windows sur lequel il est déployé, des transports requis pour envoyer les messages et du type de recyclage de processus et de domaine d'application requis.The choice of a hosting environment depends on the version of Windows on which it is deployed, the transports it requires to send messages and the type of process and application domain recycling it requires. Le tableau suivant résume les données liées à ces spécifications.The following table summarizes the data related to these requirements.

Environnement d'hébergementHosting Environment Disponibilité de plateformePlatform Availability Transports pris en chargeTransports Supported Recyclage de processus et AppDomainProcess and AppDomain Recycling
Applications managées (« auto-hébergées »)Managed Applications ("Self-Hosted") Windows XPWindows XP, Windows Server 2003Windows Server 2003, Windows VistaWindows Vista,, Windows Server 2003Windows Server 2003, Windows VistaWindows Vista,

Windows Server 2008Windows Server 2008
HTTP,HTTP,

net.tcp,net.tcp,

net.pipe,net.pipe,

net.msmqnet.msmq
NonNo
Services Windows (autrefois appelés services NT)Windows Services (formerly known as NT services) Windows XPWindows XP, Windows Server 2003Windows Server 2003, Windows VistaWindows Vista,, Windows Server 2003Windows Server 2003, Windows VistaWindows Vista,

Windows Server 2008Windows Server 2008
HTTP,HTTP,

net.tcp,net.tcp,

net.pipe,net.pipe,

net.msmqnet.msmq
NonNo
IIS 5,1IIS 5.1 Windows XPWindows XP HTTPHTTP OuiYes
IIS 6.0IIS 6.0 Windows Server 2003Windows Server 2003 HTTPHTTP OuiYes
Windows Process Activation Service (WAS)Windows Process Activation Service (WAS) Windows VistaWindows Vista, Windows Server 2008Windows Server 2008, Windows Server 2008Windows Server 2008 HTTP,HTTP,

net.tcp,net.tcp,

net.pipe,net.pipe,

net.msmqnet.msmq
OuiYes

Il est important de noter que l'exécution d'un service ou d'une extension à partir d'un hôte non fiable compromet la sécurité.It is important to note that running a service or any extension from an untrusted host compromises security. Notez aussi que lors de l'ouverture d'un ServiceHost lorsque l'emprunt d'identité est activé, une application doit garantir que l'utilisateur n'est pas déconnecté, par exemple en mettant en cache le WindowsIdentity de l'utilisateur.Also, note that when opening a ServiceHost under impersonation, an application must ensure that the user is not logged off, for example by caching the WindowsIdentity of the user.

Voir aussiSee also