Procedure: Een Windows Communication Foundation-service configureren voor het gebruik van poortdeling
De eenvoudigste manier om net.tcp:// poort delen in uw WCF-toepassing (Windows Communication Foundation) te gebruiken, is door een service beschikbaar te maken met behulp van de NetTcpBinding.
Deze binding biedt een PortSharingEnabled eigenschap waarmee wordt bepaald of delen van net.tcp://-poorten is ingeschakeld voor de service die met deze binding wordt geconfigureerd.
In de volgende procedure ziet u hoe u de NetTcpBinding klasse gebruikt om een eindpunt te openen op de URI (Uniform Resource Identifier) net.tcp://localhost/MyService, eerst in code en vervolgens met behulp van configuratie-elementen.
Net.tcp://-poort delen inschakelen op een NetTcpBinding in code
Maak een service om een aangeroepen
IMyService
contract te implementeren en aan te roepenMyService
.[ServiceContract] interface IMyService { //Define the contract operations. } class MyService : IMyService { //Implement the IMyService operations. }
<ServiceContract()> _ Friend Interface IMyService 'Define the contract operations. End Interface Friend Class MyService Implements IMyService 'Implement the IMyService operations. End Class
Maak een exemplaar van de NetTcpBinding klasse en stel de PortSharingEnabled eigenschap in op
true
.NetTcpBinding portsharingBinding = new NetTcpBinding(); portsharingBinding.PortSharingEnabled = true;
Dim portsharingBinding As New NetTcpBinding() portsharingBinding.PortSharingEnabled = True
Maak een ServiceHost en voeg het service-eindpunt eraan toe waarvoor
MyService
het delen van poorten is ingeschakeld NetTcpBinding en die luistert naar de eindpuntadres-URI 'net.tcp://localhost/MyService'.ServiceHost host = new ServiceHost( typeof( MyService ) ); host.AddServiceEndpoint( typeof( IMyService ), portsharingBinding,"net.tcp://localhost/MyService" );
Dim host As New ServiceHost(GetType(MyService)) host.AddServiceEndpoint(GetType(IMyService), portsharingBinding, "net.tcp://localhost/MyService")
Notitie
In dit voorbeeld wordt de standaard-TCP-poort van 808 gebruikt omdat de eindpuntadres-URI geen ander poortnummer opgeeft. Omdat het delen van poorten expliciet is ingeschakeld voor de transportbinding, kan deze service poort 808 delen met andere services in andere processen. Als delen van poorten niet is toegestaan en een andere toepassing al gebruikmaakt van poort 808, genereert deze service een AddressAlreadyInUseException wanneer deze werd geopend.
Net.tcp://-poort delen inschakelen op een NetTcpBinding in de configuratie
- In het volgende voorbeeld ziet u hoe u het delen van poorten inschakelt en het service-eindpunt toevoegt met behulp van configuratie-elementen.
<system.serviceModel>
<bindings>
<netTcpBinding name="portSharingBinding"
portSharingEnabled="true" />
</bindings>
<services>
<service name="MyService">
<endpoint address="net.tcp://localhost/MyService"
binding="netTcpBinding"
contract="IMyService"
bindingConfiguration="portSharingBinding" />
</service>
</services>
</system.serviceModel>