Vorgehensweise: Konfigurieren eines Windows Communication Foundation-Dienstes zum Durchführen der AnschlussfreigabeHow to: Configure a Windows Communication Foundation Service to Use Port Sharing

Die einfachste Möglichkeit zum net.tcp://-Anschlussfreigabe in der Windows Communication Foundation (WCF)-Anwendung zu verwenden ist, um einen Dienst mit verfügbar zu machen die NetTcpBinding.The easiest way to use net.tcp:// port sharing in your Windows Communication Foundation (WCF) application is to expose a service using the NetTcpBinding.

Diese Bindung verfügt über eine PortSharingEnabled-Eigenschaft, die festlegt, ob die net.tcp://-Anschlussfreigabe für den mit dieser Bindung zu konfigurierenden Dienst aktiviert ist.This binding provides a PortSharingEnabled property that controls whether net.tcp:// port sharing is enabled for the service being configured with this binding.

Der folgende Vorgang zeigt, wie Sie die NetTcpBinding-Klasse zum Öffnen eines Endpunkts am Uniform Resource Identifier (URI) net.tcp://localhost/MyService verwenden können, zuerst im Code und dann mithilfe von Konfigurationselementen.The following procedure shows how to use the NetTcpBinding class to open an endpoint at the Uniform Resource Identifier (URI) net.tcp://localhost/MyService, first in code and then by using configuration elements.

So aktivieren Sie die net.tcp://-Anschlussfreigabe für eine NetTcpBinding im CodeTo enable net.tcp:// port sharing on a NetTcpBinding in code

  1. Erstellen Sie einen Dienst implementiert einen Vertrag mit dem Namen IMyService und Aufruf der MyService,.Create a service to implement a contract called IMyService and call it 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. Erstellen Sie eine Instanz der NetTcpBinding-Klasse, und legen Sie die PortSharingEnabled-Eigenschaft auf true fest.Create an instance of the NetTcpBinding class and set the PortSharingEnabled property to true.

    NetTcpBinding portsharingBinding = new NetTcpBinding();
    portsharingBinding.PortSharingEnabled = true;
    
    Dim portsharingBinding As New NetTcpBinding()
    portsharingBinding.PortSharingEnabled = True
    
  3. Erstellen Sie einen ServiceHost, und fügen Sie ihm den Dienstendpunkt für MyService hinzu, der die NetTcpBinding, für die die Anschlussfreigabe aktiviert wurde, verwendet und der am Endpunkt-Adress-URI "net.tcp://localhost/MyService" eine Abhörung durchführt.Create a ServiceHost and add the service endpoint to it for MyService that uses the port sharing-enabled NetTcpBinding and that listens at the endpoint address 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")
    

    Hinweis

    In diesem Beispiel wird der Standard-TCP-Anschluss 808 verwendet, da der Endpunkt-Adress-URI keine andere Anschlussnummer angibt.This example uses the default TCP port of 808 because the endpoint address URI does not specify a different port number. Da die Anschlussfreigabe explizit für die Transportbindung aktiviert wurde, kann dieser Dienst den Anschluss 808 für andere Dienste in anderen Vorgängen freigeben.Because port sharing is explicitly enabled on the transport binding, this service can share port 808 with other services in other processes. Wenn die Anschlussfreigabe nicht zulässig wäre und eine andere Anwendung bereits den Anschluss 808 verwenden würde, würde dieser Dienst beim Öffnen eine AddressAlreadyInUseException ausgeben.If port sharing were not allowed and another application were already using port 808, this service would throw an AddressAlreadyInUseException when it was opened.

So aktivieren Sie die net.tcp://-Anschlussfreigabe für eine NetTcpBinding in der KonfigurationTo enable net.tcp:// port sharing on a NetTcpBinding in configuration

  1. Das folgende Beispiel zeigt, wie Sie die Anschlussfreigabe aktivieren und den Dienstendpunkt mithilfe von Konfigurationselementen hinzufügen können.The following example shows how to enable port sharing and add the service endpoint using configuration elements.
<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>  

Siehe auchSee Also

Net.TCP-PortfreigabeNet.TCP Port Sharing
Vorgehensweise: Aktivieren des Net.TCP-PortfreigabedienstsHow to: Enable the Net.TCP Port Sharing Service