CustomBinding Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bağlama öğeleri listesinden bağlama tanımlar.
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
- Devralma
- Öznitelikler
Örnekler
Aşağıdaki örnekte ve kullanarak ReliableSessionBindingElement bir CustomBinding nesnesinin nasıl oluşturulacağı gösterilmektedirHttpTransportBindingElement
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
Açıklamalar
Sistem tarafından sağlanan bağlamalardan biri hizmetinizin gereksinimlerini karşılamadığında özel bağlama kullanın. Örneğin, bir hizmet uç noktasında yeni bir aktarım veya yeni kodlayıcı kullanımını etkinleştirmek için özel bir bağlama kullanılabilir.
Özel bağlama, belirli bir sırada "yığılmış" bağlama öğeleri koleksiyonundan biri CustomBinding kullanılarak oluşturulur:
En üstte, akışlı işlemlere izin veren isteğe bağlı TransactionFlowBindingElement bir seçenek bulunur.
Sonraki, WS-ReliableMessaging belirtiminde tanımlandığı gibi bir oturum ve sıralama mekanizması sağlayan isteğe bağlı ReliableSessionBindingElement bir özelliktir. Bu oturum durumu SOAP ve aktarım aracıları arasında geçiş yapabilir.
Sonraki, yetkilendirme, kimlik doğrulaması, koruma ve gizlilik gibi güvenlik özellikleri sağlayan isteğe bağlı bir güvenlik bağlama öğesidir. Aşağıdaki güvenlik bağlama öğeleri Windows Communication Foundation (WCF) tarafından sağlanır:
Sonraki, bağlama öğeleri tarafından belirtilen isteğe bağlı ileti desenleridir:
Ardından isteğe bağlı aktarım yükseltmeleri/yardımcıları bağlama öğeleri şunlardır:
Sonraki, gerekli bir ileti kodlama bağlama öğesidir. Kendi taşımanızı veya aşağıdaki ileti kodlama bağlamalarından birini kullanabilirsiniz:
Alt kısımda gerekli bir taşıma elemanı bulunur. Kendi taşımanızı kullanabilir veya Windows Communication Foundation (WCF) tarafından sağlanan aktarım bağlama öğelerinden birini kullanabilirsiniz:
Aşağıdaki tabloda her katman için seçenekler özetlenmiştir.
Katman | Seçenekler | Gerekli |
---|---|---|
İşlem Akışı | TransactionFlowBindingElement | No |
Güvenilirlik | ReliableSessionBindingElement | No |
Güvenlik | Simetrik, Asimetrik, Transport-Level | No |
Şekil Değişikliği | CompositeDuplexBindingElement | No |
Taşıma Yükseltmeleri | SSL akışı, Windows akışı, Eş Çözümleyici | No |
Encoding | Metin, İkili, MTOM, Özel | Yes |
Aktarım | TCP, Adlandırılmış Kanallar, HTTP, HTTPS, MSMQ türleri, Özel | Yes |
Ayrıca, kendi bağlama öğelerinizi tanımlayabilir ve bunları önceki tanımlı katmanlardan herhangi birinin arasına ekleyebilirsiniz.
Sistem tarafından sağlanan bağlamayı değiştirmek için özel bağlama kullanma hakkında bir tartışma için bkz . Nasıl yapılır: System-Provided Bağlamasını Özelleştirme.
Not
.NET Framework 3.5 veya önceki sürümleriyle oluşturulmuş bir WCF istemci uygulamasından .NET Framework 4.0 veya üzeri ile oluşturulmuş bir WCF hizmetini çağırırken, svcutil.exe tarafından oluşturulan veya Visual Studio'dan bir hizmet başvurusu ekleyen yapılandırma dosyası bağlama yapılandırmasında geçerlilik özniteliğini içerir. Bu öznitelik .NET Framework 3.5 çalışma zamanı tarafından tanınmaz ve uygulama "Tanınmayan öznitelik geçerliliği" iletisiyle bir ConfigurationErrorsException oluşturur. Bu soruna geçici bir çözüm olarak bağlama yapılandırmasından geçerlilik özniteliğini kaldırın.
Oluşturucular
CustomBinding() |
CustomBinding sınıfının yeni bir örneğini başlatır. |
CustomBinding(Binding) |
Belirtilen bağlamanın CustomBinding değerlerinden sınıfının yeni bir örneğini başlatır. |
CustomBinding(BindingElement[]) |
Bağlama öğeleri dizisinden sınıfının yeni bir örneğini CustomBinding başlatır. |
CustomBinding(IEnumerable<BindingElement>) |
Tam bir kanal yığınından CustomBinding bağlama öğeleriyle sınıfının yeni bir örneğini başlatır. |
CustomBinding(String) |
CustomBinding sınıfının yeni bir örneğini başlatır. |
CustomBinding(String, String, BindingElement[]) |
Belirtilen ada ve ad alanına sahip bağlama öğeleri dizisinden sınıfının yeni bir örneğini CustomBinding başlatır. |
Özellikler
CloseTimeout |
Aktarım özel durum oluşturmadan önce bağlantının kapatılması için sağlanan zaman aralığını alır veya ayarlar. (Devralındığı yer: Binding) |
Elements |
Özel bağlamadan bağlama öğelerini alır. |
MessageVersion |
Bağlama ile yapılandırılan istemciler ve hizmetler tarafından kullanılan ileti sürümünü alır. (Devralındığı yer: Binding) |
Name |
Bağlamanın adını alır veya ayarlar. (Devralındığı yer: Binding) |
Namespace |
Bağlamanın XML ad alanını alır veya ayarlar. (Devralındığı yer: Binding) |
OpenTimeout |
Aktarım özel durum oluşturmadan önce bağlantının açılması için sağlanan zaman aralığını alır veya ayarlar. (Devralındığı yer: Binding) |
ReceiveTimeout |
Bağlantının devre dışı bırakılmadan önce hiçbir uygulama iletisi alınmadan devre dışı kalabileceği süreyi alır veya ayarlar. (Devralındığı yer: Binding) |
Scheme |
Özel bağlama tarafından kullanılan aktarım için URI şemasını alır. |
SendTimeout |
Aktarım bir özel durum oluşturmadan önce yazma işleminin tamamlanması için sağlanan zaman aralığını alır veya ayarlar. (Devralındığı yer: Binding) |
Yöntemler
BuildChannelFactory<TChannel>(BindingParameterCollection) |
Belirtilen kanal türünü oluşturan ve bağlama parametreleri koleksiyonu tarafından belirtilen özellikleri karşılayan istemci üzerinde kanal fabrikası yığınını oluşturur. (Devralındığı yer: Binding) |
BuildChannelFactory<TChannel>(Object[]) |
Belirtilen kanal türünü oluşturan ve bir nesne dizisi tarafından belirtilen özellikleri karşılayan istemci üzerinde kanal fabrikası yığınını oluşturur. (Devralındığı yer: Binding) |
BuildChannelListener<TChannel>(BindingParameterCollection) |
Belirtilen kanal türünü kabul eden ve bağlama parametreleri koleksiyonu tarafından belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. (Devralındığı yer: Binding) |
BuildChannelListener<TChannel>(Object[]) |
Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. (Devralındığı yer: Binding) |
BuildChannelListener<TChannel>(Uri, BindingParameterCollection) |
Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. (Devralındığı yer: Binding) |
BuildChannelListener<TChannel>(Uri, Object[]) |
Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. (Devralındığı yer: Binding) |
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) |
Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. (Devralındığı yer: Binding) |
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) |
Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. (Devralındığı yer: Binding) |
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) |
Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. (Devralındığı yer: Binding) |
BuildChannelListener<TChannel>(Uri, String, Object[]) |
Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. (Devralındığı yer: Binding) |
CanBuildChannelFactory<TChannel>(BindingParameterCollection) |
Geçerli bağlamanın istemci üzerinde belirtilen bağlama parametrelerinin koleksiyonunu karşılayan bir kanal fabrika yığını oluşturup oluşturamayacağını gösteren bir değer döndürür. (Devralındığı yer: Binding) |
CanBuildChannelFactory<TChannel>(Object[]) |
Geçerli bağlamanın istemci üzerinde bir nesne dizisi tarafından belirtilen gereksinimleri karşılayan bir kanal fabrika yığını oluşturup oluşturamayacağını gösteren bir değer döndürür. (Devralındığı yer: Binding) |
CanBuildChannelListener<TChannel>(BindingParameterCollection) |
Geçerli bağlamanın hizmette belirtilen bağlama parametreleri koleksiyonunu karşılayan bir kanal dinleyici yığını oluşturup oluşturamayacağını gösteren bir değer döndürür. (Devralındığı yer: Binding) |
CanBuildChannelListener<TChannel>(Object[]) |
Geçerli bağlamanın bir nesne dizisinde belirtilen ölçütleri karşılayan hizmet üzerinde kanal dinleyici yığını oluşturup oluşturamayacağını gösteren bir değer döndürür. (Devralındığı yer: Binding) |
CreateBindingElements() |
Özel bağlamadan bağlama öğelerinin genel bir koleksiyonunu döndürür. |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetProperty<T>(BindingParameterCollection) |
Varsa, bağlama yığınındaki uygun katmandan istenen türe sahip bir nesne döndürür. (Devralındığı yer: Binding) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
ShouldSerializeName() |
Bağlama adının seri hale getirilip getirilmeyeceğini döndürür. (Devralındığı yer: Binding) |
ShouldSerializeNamespace() |
Bağlamanın ad alanının seri hale getirilip getirilmeyeceğini döndürür. (Devralındığı yer: Binding) |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |