Bagikan melalui


Cara: Mengonfigurasi Windows Communication Foundation Service untuk Menggunakan Berbagi Port

Cara termudah untuk menggunakan berbagi port net.tcp:// di aplikasi Windows Communication Foundation (WCF) Anda adalah dengan mengekspos layanan menggunakan NetTcpBinding.

Pengikatan ini menyediakan properti PortSharingEnabled yang mengontrol apakah berbagi port net.tcp:// diaktifkan untuk layanan yang dikonfigurasi dengan pengikatan ini.

Prosedur berikut menunjukkan cara menggunakan kelas NetTcpBinding untuk membuka titik akhir di Uniform Resource Identifier (URI) net.tcp://localhost/MyService, pertama dalam kode lalu dengan menggunakan elemen konfigurasi.

Untuk mengaktifkan berbagi port net.tcp:// pada NetTcpBinding dalam kode

  1. Buat layanan untuk mengimplementasikan kontrak yang disebut IMyService dan menyebutnya 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. Buat instans kelas NetTcpBinding dan atur properti PortSharingEnabled ke true.

    NetTcpBinding portsharingBinding = new NetTcpBinding();
    portsharingBinding.PortSharingEnabled = true;
    
    Dim portsharingBinding As New NetTcpBinding()
    portsharingBinding.PortSharingEnabled = True
    
  3. Buat ServiceHost dan tambahkan titik akhir layanan ke titik akhir untuk MyService itu yang menggunakan port berbagi NetTcpBinding yang diaktifkan dan yang mendengarkan di URI alamat titik akhir "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")
    

    Catatan

    Contoh ini menggunakan port TCP default 808 karena URI alamat titik akhir tidak menentukan nomor port yang berbeda. Karena berbagi port diaktifkan secara eksplisit pada pengikatan transportasi, layanan ini dapat berbagi port 808 dengan layanan lain dalam proses lain. Jika berbagi port tidak diizinkan dan aplikasi lain sudah menggunakan port 808, layanan ini akan memunculkan AddressAlreadyInUseException ketika dibuka.

Untuk mengaktifkan berbagi port net.tcp:// pada NetTcpBinding dalam konfigurasi

  1. Contoh berikut menunjukkan cara mengaktifkan berbagi port dan menambahkan titik akhir layanan menggunakan elemen konfigurasi.
<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>  

Lihat juga