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
Buat layanan untuk mengimplementasikan kontrak yang disebut
IMyService
dan menyebutnyaMyService
, .[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
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
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
- 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>