Partager via


Comment : héberger un service WCF dans WAS

Cette rubrique décrit les étapes de base requises pour créer un service Windows Communication Foundation (WCF) hébergé dans le service d'activation de processus de Windows (également appelé WAS). WAS est le nouveau service d'activation de processus généralisant les fonctionnalités des services IIS (Internet Information Services) qui fonctionnent avec des protocoles de transport non-HTTP. WCF utilise l'interface de l'adaptateur d'écouteur pour communiquer les demandes d'activation reçues sur les protocoles non-HTTP pris en charge par WCF, tels que TCP, les canaux nommés et Message Queuing.

Cette option d'hébergement requiert que les composants d'activation WAS soient installés et configurés correctement, mais ne requiert pas l'écriture du code d'hébergement dans le cadre de l'application. Pour plus d'informations sur comment installer et configurer WAS, consultez Comment : installer et configurer des composants d'activation WCF.

Lorsqu'un service WCF est hébergé dans WAS, les liaisons standard sont utilisées de la façon habituelle. Toutefois, lors de l'utilisation de NetTcpBinding et de NetNamedPipeBinding pour configurer un service hébergé WAS, une contrainte doit être satisfaite. Lorsque des points de terminaison différents utilisent le même transport, les paramètres de liaison doivent correspondre dans les sept propriétés suivantes :

  • ConnectionBufferSize
  • ChannelInitializationTimeout
  • MaxPendingConnections
  • MaxOutputDelay
  • MaxPendingAccepts
  • ConnectionPoolSettings.IdleTimeout
  • ConnectionPoolSettings.MaxOutboundConnectionsPerEndpoint

Sinon, le point de terminaison initialisé en premier détermine toujours les valeurs de ces propriétés et les points de terminaison ajoutés ultérieurement lèvent un ServiceActivationException s'ils ne correspondent pas à ces paramètres.

Pour la copie source de cet exemple, consultez TCP Activation.

Pour créer un service de base hébergé par WAS

  1. Définissez un contrat de service pour le type de service.

  2. Implémentez le contrat de service dans une classe de service. Notez que l'adresse ou les informations de liaison ne sont pas spécifiées dans l'implémentation du service. Par ailleurs, il n'est pas nécessaire d'écrire du code pour récupérer ces informations à partir du fichier de configuration.

  3. Créez un fichier Web.config pour configurer un point de terminaison pour le CalculatorService qui utilise le NetTcpBinding.

  4. Créez un fichier Service.svc qui contient la ligne :

    <%@ServiceHost language=c# Service="CalculatorService" %> 
    
  5. Placez le fichier Service.svc dans votre répertoire virtuel IIS.

Pour créer un client qui utilise le service

  1. Utilisez ServiceModel Metadata Utility Tool (Svcutil.exe) à partir de la ligne de commande pour générer le code à partir des métadonnées du service.

    Svcutil.exe <service's Metadata Exchange (MEX) address or HTTP GET address> 
    
  2. Le client généré contient l'interface ICalculator qui définit le contrat de service auquel l'implémentation du client doit satisfaire.

  3. L'application cliente générée contient également l'implémentation de ClientCalculator. Notez que les informations d'adresse et de liaison ne sont pas spécifiées n'importe où dans l'implémentation du service. Par ailleurs, il n'est pas nécessaire d'écrire du code pour récupérer ces informations à partir du fichier de configuration.

  4. La configuration du client qui utilise NetTcpBinding est également générée par Svcutil.exe. Ce fichier doit être nommé dans le fichier App.config lors de l'utilisation de Visual Studio.

  5. Créez une instance ClientCalculator dans une application, puis appelez les opérations de service.

  6. Compilez, puis exécutez le client.

Voir aussi

Autres ressources

TCP Activation