Dela via


Anvisningar: Konfigurera en Windows Communication Foundation-tjänst för att använda portdelning

Det enklaste sättet att använda net.tcp://-portdelning i ditt WCF-program (Windows Communication Foundation) är att exponera en tjänst med hjälp av NetTcpBinding.

Den här bindningen tillhandahåller en PortSharingEnabled egenskap som styr om net.tcp://-portdelning är aktiverat för den tjänst som konfigureras med den här bindningen.

Följande procedur visar hur du använder NetTcpBinding klassen för att öppna en slutpunkt i URI(Uniform Resource Identifier) net.tcp://localhost/MyService, först i kod och sedan med hjälp av konfigurationselement.

Så här aktiverar du net.tcp:// portdelning på en NetTcpBinding i kod

  1. Skapa en tjänst för att implementera ett kontrakt som heter IMyService och anropa det MyService, .

    [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
    
  2. Skapa en instans av NetTcpBinding klassen och ange PortSharingEnabled egenskapen till true.

    NetTcpBinding portsharingBinding = new NetTcpBinding();
    portsharingBinding.PortSharingEnabled = true;
    
    Dim portsharingBinding As New NetTcpBinding()
    portsharingBinding.PortSharingEnabled = True
    
  3. Skapa en ServiceHost och lägg till tjänstslutpunkten till den för MyService som använder portdelningsaktiverad NetTcpBinding och som lyssnar på slutpunktsadressens 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")
    

    Kommentar

    I det här exemplet används TCP-standardporten 808 eftersom slutpunktsadress-URI:n inte anger något annat portnummer. Eftersom portdelning uttryckligen är aktiverat för transportbindningen kan den här tjänsten dela port 808 med andra tjänster i andra processer. Om portdelning inte tilläts och ett annat program redan använde port 808, skulle den här tjänsten utlösa en AddressAlreadyInUseException när den öppnades.

Så här aktiverar du net.tcp:// portdelning på en NetTcpBinding i konfigurationen

  1. I följande exempel visas hur du aktiverar portdelning och lägger till tjänstslutpunkten med hjälp av konfigurationselement.
<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>  

Se även