Comment : configurer un service Windows Communication Foundation pour utiliser le partage de ports
La manière la plus simple d'utiliser le partage de ports net.tcp:// dans votre application Windows Communication Foundation (WCF) est d'exposer un service à l'aide de NetTcpBinding.
Cette liaison fournit une propriété PortSharingEnabled qui contrôle si le partage de ports net.tcp:// est activé pour le service configuré avec cette liaison.
La procédure suivante montre comment utiliser la classe NetTcpBinding pour ouvrir un point de terminaison à l'URI net.tcp://localhost/MyService, d'abord dans du code puis en utilisant des éléments de configuration.
Pour activer le partage de ports net.tcp:// sur une liaison NetTcpBinding dans du code
Créez un service pour implémenter un contrat appelé IMyService et appelez-le MyService.
<ServiceContract()> _ Friend Interface IMyService 'Define the contract operations. End Interface Friend Class MyService Implements IMyService 'Implement the IMyService operations. End Class
[ServiceContract] interface IMyService { //Define the contract operations. } class MyService : IMyService { //Implement the IMyService operations. }
Créez une instance de la classe NetTcpBinding, puis affectez à la propriété PortSharingEnabled la valeur true.
Dim portsharingBinding As New NetTcpBinding() portsharingBinding.PortSharingEnabled = True
NetTcpBinding portsharingBinding = new NetTcpBinding(); portsharingBinding.PortSharingEnabled = true;
Créez un ServiceHost et ajoutez-lui le point de terminaison de service pour MyService qui utilise la liaison NetTcpBinding avec partage de ports activé par partage et qui écoute l'URI de l'adresse du point de terminaison « net.tcp://localhost/MyService ».
Dim host As New ServiceHost(GetType(MyService)) host.AddServiceEndpoint(GetType(IMyService), portsharingBinding, "net.tcp://localhost/MyService")
ServiceHost host = new ServiceHost( typeof( MyService ) ); host.AddServiceEndpoint( typeof( IMyService ), portsharingBinding,"net.tcp://localhost/MyService" );
Remarque : Cet exemple utilise le port TCP par défaut 808 parce que l'URI de l'adresse du point de terminaison ne spécifie pas de numéro de port différent. Vu que le partage de ports est activé explicitement sur la liaison de transport, ce service peut partager le port 808 avec d'autres services dans d'autres processus. Si le partage de ports n'a pas été autorisé et si une autre application utilise déjà le port 808, ce service lève une AddressAlreadyInUseException lorsqu'il est ouvert.
Pour activer le partage de ports net.tcp:// sur une liaison NetTcpBinding dans la configuration
- L'exemple suivant montre comment activer le partage de ports et ajouter le point de terminaison de service à l'aide d'éléments de configuration.
<system.serviceModel>
<bindings>
<netTcpBinding name="portSharingBinding"
portSharingEnabled="true" />
<services>
<service name="MyService">
<endpoint address="net.tcp://localhost/MyService"
binding="netTcpBinding"
contract="IMyService"
bindingConfiguration="portSharingBinding" />
</service>
</services>
</system.serviceModel>
Voir aussi
Tâches
Comment : activer le service de partage de ports Net.TCP