CustomBinding Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menentukan pengikatan dari daftar elemen pengikatan.
public ref class CustomBinding : System::ServiceModel::Channels::Binding
public class CustomBinding : System.ServiceModel.Channels.Binding
[System.Windows.Markup.ContentProperty("Elements")]
public class CustomBinding : System.ServiceModel.Channels.Binding
type CustomBinding = class
inherit Binding
[<System.Windows.Markup.ContentProperty("Elements")>]
type CustomBinding = class
inherit Binding
Public Class CustomBinding
Inherits Binding
- Warisan
- Atribut
Contoh
Contoh berikut menunjukkan cara membuat CustomBinding objek menggunakan ReliableSessionBindingElement dan HttpTransportBindingElement
Uri baseAddress = new Uri("http://localhost:8000/servicemodelsamples/service");
// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
// Create a custom binding that contains two binding elements.
ReliableSessionBindingElement reliableSession = new ReliableSessionBindingElement();
reliableSession.Ordered = true;
HttpTransportBindingElement httpTransport = new HttpTransportBindingElement();
httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous;
httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
CustomBinding binding = new CustomBinding(reliableSession, httpTransport);
// Add an endpoint using that binding.
serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, "");
// Add a MEX endpoint.
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
smb.HttpGetUrl = new Uri("http://localhost:8001/servicemodelsamples");
serviceHost.Description.Behaviors.Add(smb);
// Open the ServiceHostBase to create listeners and start listening for messages.
serviceHost.Open();
// The service can now be accessed.
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
// Close the ServiceHostBase to shutdown the service.
serviceHost.Close();
}
Dim baseAddress As New Uri("http://localhost:8000/servicemodelsamples/service")
' Create a ServiceHost for the CalculatorService type and provide the base address.
Using serviceHost As New ServiceHost(GetType(CalculatorService), baseAddress)
' Create a custom binding that contains two binding elements.
Dim reliableSession As New ReliableSessionBindingElement()
reliableSession.Ordered = True
Dim httpTransport As New HttpTransportBindingElement()
httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous
httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard
Dim binding As New CustomBinding(reliableSession, httpTransport)
' Add an endpoint using that binding.
serviceHost.AddServiceEndpoint(GetType(ICalculator), binding, "")
' Add a MEX endpoint.
Dim smb As New ServiceMetadataBehavior()
smb.HttpGetEnabled = True
smb.HttpGetUrl = New Uri("http://localhost:8001/servicemodelsamples")
serviceHost.Description.Behaviors.Add(smb)
' Open the ServiceHostBase to create listeners and start listening for messages.
serviceHost.Open()
' The service can now be accessed.
Console.WriteLine("The service is ready.")
Console.WriteLine("Press <ENTER> to terminate service.")
Console.WriteLine()
Console.ReadLine()
' Close the ServiceHostBase to shutdown the service.
serviceHost.Close()
End Using
Keterangan
Gunakan pengikatan kustom jika salah satu pengikatan yang disediakan sistem tidak memenuhi persyaratan layanan Anda. Pengikatan kustom dapat digunakan, misalnya, untuk mengaktifkan penggunaan transportasi baru atau encoder baru di titik akhir layanan.
Pengikatan kustom dibuat menggunakan salah satu CustomBinding dari kumpulan elemen pengikatan yang "ditumpuk" dalam urutan tertentu:
Di bagian atas adalah TransactionFlowBindingElement opsional yang memungkinkan transaksi mengalir.
Berikutnya adalah ReliableSessionBindingElement opsional yang menyediakan sesi dan mekanisme pemesanan seperti yang ditentukan dalam spesifikasi WS-ReliableMessaging. Gagasan sesi ini dapat melintasi perantara SOAP dan transportasi.
Berikutnya adalah elemen pengikat keamanan opsional yang menyediakan fitur keamanan seperti otorisasi, autentikasi, perlindungan, dan kerahasiaan. Elemen pengikat keamanan berikut ini disediakan oleh Windows Communication Foundation (WCF):
Berikutnya adalah pola pesan opsional yang ditentukan oleh elemen pengikat:
Berikutnya adalah elemen pengikatan peningkatan/pembantu transportasi opsional:
Berikutnya adalah elemen pengikatan pengodean pesan yang diperlukan. Anda dapat menggunakan transportasi Anda sendiri atau menggunakan salah satu pengikatan pengodean pesan berikut:
Di bagian bawah adalah elemen transportasi yang diperlukan. Anda dapat menggunakan transportasi Anda sendiri atau menggunakan salah satu elemen pengikat transportasi yang disediakan oleh Windows Communication Foundation (WCF):
Tabel berikut merangkum opsi untuk setiap lapisan.
Lapisan | Opsi | Diperlukan |
---|---|---|
Alur Transaksi | TransactionFlowBindingElement | Tidak |
Keandalan | ReliableSessionBindingElement | Tidak |
Keamanan | Simetris, Asimetris, Tingkat Transportasi | Tidak |
Perubahan Bentuk | CompositeDuplexBindingElement | Tidak |
Peningkatan Transportasi | Aliran SSL, aliran Windows, Penyelesai Serekan | Tidak |
Pengodean | Teks, Biner, MTOM, Kustom | Ya |
Transportasi | TCP, Pipa yang Dinamai, HTTP, HTTPS, rasa MSMQ, Kustom | Ya |
Selain itu, Anda dapat menentukan elemen pengikat Anda sendiri dan menyisipkannya di antara salah satu lapisan yang ditentukan sebelumnya.
Untuk diskusi tentang cara menggunakan pengikatan kustom guna mengubah pengikatan yang disediakan sistem, lihat Cara: Menyesuaikan Pengikatan yang Disediakan Sistem.
Catatan
Saat memanggil layanan WCF yang dibuat dengan .NET Framework 4.0 atau yang lebih baru dari aplikasi klien WCF yang dibuat dengan .NET Framework 3.5 atau yang lebih lama, file konfigurasi yang dihasilkan oleh svcutil.exe atau menambahkan referensi layanan dari Visual Studio akan berisi atribut validitas dalam konfigurasi pengikatan. Atribut ini tidak dikenali oleh runtime .NET Framework 3.5 dan aplikasi akan menampilkan ConfigurationErrorsException pesan "Validitas atribut tidak dikenal". Untuk mengatasi masalah ini, hapus atribut validitas dari konfigurasi pengikatan.
Konstruktor
CustomBinding() |
Menginisialisasi instans baru kelas CustomBinding. |
CustomBinding(Binding) |
Menginisialisasi instans CustomBinding baru kelas dari nilai pengikatan tertentu. |
CustomBinding(BindingElement[]) |
Menginisialisasi instans CustomBinding baru kelas dari array elemen pengikatan. |
CustomBinding(IEnumerable<BindingElement>) |
Menginisialisasi instans CustomBinding baru kelas dengan elemen pengikatan dari tumpukan saluran lengkap. |
CustomBinding(String) |
Menginisialisasi instans baru kelas CustomBinding. |
CustomBinding(String, String, BindingElement[]) |
Menginisialisasi instans CustomBinding baru kelas dari array elemen pengikatan dengan nama dan namespace yang ditentukan. |
Properti
CloseTimeout |
Mendapatkan atau mengatur interval waktu yang disediakan agar koneksi ditutup sebelum transportasi memunculkan pengecualian. (Diperoleh dari Binding) |
Elements |
Mendapatkan elemen pengikatan dari pengikatan kustom. |
MessageVersion |
Mendapatkan versi pesan yang digunakan oleh klien dan layanan yang dikonfigurasi dengan pengikatan. (Diperoleh dari Binding) |
Name |
Mendapatkan atau mengatur nama pengikatan. (Diperoleh dari Binding) |
Namespace |
Mendapatkan atau mengatur namespace XML pengikatan. (Diperoleh dari Binding) |
OpenTimeout |
Mendapatkan atau mengatur interval waktu yang disediakan agar koneksi terbuka sebelum transportasi menimbulkan pengecualian. (Diperoleh dari Binding) |
ReceiveTimeout |
Mendapatkan atau mengatur interval waktu koneksi dapat tetap tidak aktif, di mana tidak ada pesan aplikasi yang diterima, sebelum dihilangkan. (Diperoleh dari Binding) |
Scheme |
Mendapatkan skema URI untuk transportasi yang digunakan oleh pengikatan kustom. |
SendTimeout |
Mendapatkan atau mengatur interval waktu yang disediakan agar operasi tulis selesai sebelum transportasi memunculkan pengecualian. (Diperoleh dari Binding) |
Metode
BuildChannelFactory<TChannel>(BindingParameterCollection) |
Membangun tumpukan pabrik saluran pada klien yang membuat jenis saluran tertentu dan yang memenuhi fitur yang ditentukan oleh kumpulan parameter pengikatan. (Diperoleh dari Binding) |
BuildChannelFactory<TChannel>(Object[]) |
Membangun tumpukan pabrik saluran pada klien yang membuat jenis saluran tertentu dan yang memenuhi fitur yang ditentukan oleh array objek. (Diperoleh dari Binding) |
BuildChannelListener<TChannel>(BindingParameterCollection) |
Membangun pendengar saluran pada layanan yang menerima jenis saluran tertentu dan yang memenuhi fitur yang ditentukan oleh kumpulan parameter pengikatan. (Diperoleh dari Binding) |
BuildChannelListener<TChannel>(Object[]) |
Membangun pendengar saluran pada layanan yang menerima jenis saluran tertentu dan yang memenuhi fitur yang ditentukan. (Diperoleh dari Binding) |
BuildChannelListener<TChannel>(Uri, BindingParameterCollection) |
Membangun pendengar saluran pada layanan yang menerima jenis saluran tertentu dan yang memenuhi fitur yang ditentukan. (Diperoleh dari Binding) |
BuildChannelListener<TChannel>(Uri, Object[]) |
Membangun pendengar saluran pada layanan yang menerima jenis saluran tertentu dan yang memenuhi fitur yang ditentukan. (Diperoleh dari Binding) |
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) |
Membangun pendengar saluran pada layanan yang menerima jenis saluran tertentu dan yang memenuhi fitur yang ditentukan. (Diperoleh dari Binding) |
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) |
Membangun pendengar saluran pada layanan yang menerima jenis saluran tertentu dan yang memenuhi fitur yang ditentukan. (Diperoleh dari Binding) |
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) |
Membangun pendengar saluran pada layanan yang menerima jenis saluran tertentu dan yang memenuhi fitur yang ditentukan. (Diperoleh dari Binding) |
BuildChannelListener<TChannel>(Uri, String, Object[]) |
Membangun pendengar saluran pada layanan yang menerima jenis saluran tertentu dan yang memenuhi fitur yang ditentukan. (Diperoleh dari Binding) |
CanBuildChannelFactory<TChannel>(BindingParameterCollection) |
Mengembalikan nilai yang menunjukkan apakah pengikatan saat ini dapat membangun tumpukan pabrik saluran pada klien yang memenuhi kumpulan parameter pengikatan yang ditentukan. (Diperoleh dari Binding) |
CanBuildChannelFactory<TChannel>(Object[]) |
Mengembalikan nilai yang menunjukkan apakah pengikatan saat ini dapat membangun tumpukan pabrik saluran pada klien yang memenuhi persyaratan yang ditentukan oleh array objek. (Diperoleh dari Binding) |
CanBuildChannelListener<TChannel>(BindingParameterCollection) |
Mengembalikan nilai yang menunjukkan apakah pengikatan saat ini dapat membangun tumpukan pendengar saluran pada layanan yang memenuhi kumpulan parameter pengikatan yang ditentukan. (Diperoleh dari Binding) |
CanBuildChannelListener<TChannel>(Object[]) |
Mengembalikan nilai yang menunjukkan apakah pengikatan saat ini dapat membangun tumpukan pendengar saluran pada layanan yang memenuhi kriteria yang ditentukan dalam array objek. (Diperoleh dari Binding) |
CreateBindingElements() |
Mengembalikan kumpulan generik elemen pengikatan dari pengikatan kustom. |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetProperty<T>(BindingParameterCollection) |
Mengembalikan objek jenis yang diminta, jika ada, dari lapisan yang sesuai dalam tumpukan pengikatan. (Diperoleh dari Binding) |
GetType() |
Mendapatkan dari instans Type saat ini. (Diperoleh dari Object) |
MemberwiseClone() |
Membuat salinan dangkal dari saat ini Object. (Diperoleh dari Object) |
ShouldSerializeName() |
Mengembalikan apakah nama pengikatan harus diserialisasikan. (Diperoleh dari Binding) |
ShouldSerializeNamespace() |
Mengembalikan apakah namespace pengikatan harus diserialisasikan. (Diperoleh dari Binding) |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |