Binding 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.
İstemciler ve hizmetler arasındaki iletişim için kullanılan protokolleri, aktarımları ve ileti kodlayıcılarını belirten bağlama öğelerini içerir.
public ref class Binding abstract : System::ServiceModel::IDefaultCommunicationTimeouts
public abstract class Binding : System.ServiceModel.IDefaultCommunicationTimeouts
type Binding = class
interface IDefaultCommunicationTimeouts
Public MustInherit Class Binding
Implements IDefaultCommunicationTimeouts
- Devralma
-
Binding
- Türetilmiş
- Uygulamalar
Örnekler
BasicHttpBinding binding = new BasicHttpBinding();
binding.Name = "binding1";
Uri baseAddress = new Uri("http://localhost:8000/servicemodelsamples/service");
Uri address = new Uri("http://localhost:8000/servicemodelsamples/service/calc");
// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, address);
// 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();
}
Açıklamalar
Her biri bir uç noktanın diğer uç noktalarla nasıl iletişim kurduğunu açıklayan ve istemcideki bir kanal fabrikasında ve hizmetteki bir kanal dinleyicisinde sürekli olarak oluşturulan bağlama öğeleri koleksiyonunu temsil eder. Bağlama, protokol kanallarına, aktarım kanallarına ve ileti kodlayıcılarına karşılık gelen bağlama öğelerinin bir koleksiyonunu içerir. Protokol kanalları için herhangi bir sayıda bağlama öğesi olabilir, ancak her aktarım ve ileti kodlayıcısı için bir ve yalnızca bir bağlama öğesi olabilir. Bir bağlamada genellikle altı bağlama öğesi katmanı vardır. Yalnızca yığının alt kısmındaki aktarım ve kodlama bağlama öğeleri gereklidir. Her bağlama için bir kodlama gerektiğinden, bir kodlama belirtilmezse, Windows Communication Foundation (WCF) sizin için varsayılan bir kodlama ekler. Varsayılan değer HTTP ve HTTPS aktarımları için Metin/XML, diğer aktarımlar için İkili'dir.
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 |
Aktarım 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, Özel | Yes |
Her bağlama öğesi, istemcide bir kanal fabrikası ve hizmette bir kanal dinleyicisi oluşturmak için belirtim sağlar. Kanal fabrikası yığını oluşturulduğunda, örneğin, bağlamadaki her bağlama öğesi için yığında bir kanal fabrikası vardır. Aynı eşleme türü, hizmetteki yığındaki kanal dinleyicileri için de geçerlidir. İstemci ve hizmette tutarlılık, bu uç noktalar arasında kanal tabanlı bağlantı kurmak için kritik öneme sahiptir. Her fabrika ve dinleyici buna karşılık gelen kanalları bağlayan kanal yığınında gönderme ve kabul etme işlemlerini işler ve bu kanallar daha sonra iletişim kurmak için kullanılan iletileri gönderip alabilir.
Her bir Binding örneğinin, birlikte hizmetin meta verilerinde benzersiz olarak tanımlayan bir Name ve Namespace örneği vardır. Ad veya ad alanı belirtilmezse WCF sizin için varsayılan değerleri ekler. Varsayılan ad alanı ve null
varsayılan ad alanı şeklindedir http://tempuri.org/
. Bağlama için bu kullanıcı adı, özelliği tarafından belirtilen protokol adının belirtiminden Scheme farklıdır. Örneğin, daha fazla HTTP bağlaması eklemek istiyorsanız, bunları istediğiniz şekilde adlandırabilir ve tüm düzenlerini "http" olarak ayarlayabilirsiniz. temel alan bir uygulama veya makine gönderimi Schemeyoktur. Bu nedenle, bilinen protokoller için ek işleyicileri kaydedememe sorununu ortadan kaldırabilirsiniz. Ayrıca her sürüme farklı bir ad vererek bağlamanın birden çok sürümüyle kolayca yan yana çalışabilirsiniz.
sınıfı, Binding uzun süreler IDefaultCommunicationTimeouts için kaynakları bağlamaya dayanan Hizmet Reddi (DOS) saldırılarını azaltmak için arabirimini uygular. Uygulama, bağlantıları açma ve kapatma ve iletileri alma ve gönderme ile ilişkili okuma ve yazma işlemleri için iletişim zaman aşımları değerlerini belirtir. Bu zaman aşımlarını almak ve ayarlamak için kullanılan özellikler ve bunların varsayılan değer işlemleri aşağıdaki tabloda özetlenir.
Zaman Aşımı Özelliği | Varsayılan değer |
---|---|
OpenTimeout | 1 dakika |
CloseTimeout | 1 dakika |
SendTimeout | 1 dakika |
ReceiveTimeout | 10 dakika |
'den Bindingdevralarak bir bağlama oluşturduğunuzda geçersiz kılmanız CreateBindingElementsgerekir.
Buna ek olarak, kendi bağlama öğelerinizi tanımlayabilir ve bunları önceki tabloda tanımlanan katmanlar arasına ekleyebilirsiniz. Daha fazla bilgi için sınıfına CustomBinding bakın.
Oluşturucular
Binding() |
Sınıfın Binding yeni bir örneğini varsayılan ad alanı ve ad alanıyla başlatır. |
Binding(String, String) |
Hizmetin belirtilen bağlamasından sınıfının yeni bir örneğini Binding 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. |
MessageVersion |
Bağlama ile yapılandırılan istemciler ve hizmetler tarafından kullanılan ileti sürümünü alır. |
Name |
Bağlamanın adını alır veya ayarlar. |
Namespace |
Bağlamanın XML ad alanını alır veya ayarlar. |
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. |
ReceiveTimeout |
Bağlantının devre dışı bırakılmadan önce hiçbir uygulama iletisinin alınmadığı devre dışı kalabileceği süreyi alır veya ayarlar. |
Scheme |
Türetilmiş bir sınıfta uygulandığında, bağlamalar tarafından oluşturulan kanal ve dinleyici fabrikaları tarafından kullanılan aktarımı belirten URI şemasını ayarlar. |
SendTimeout |
Aktarım özel durum oluşturmadan önce yazma işleminin tamamlanması için sağlanan zaman aralığını alır veya ayarlar. |
Yöntemler
BuildChannelFactory<TChannel>(BindingParameterCollection) |
İstemcide belirtilen kanal türünü oluşturan ve bağlama parametreleri koleksiyonu tarafından belirtilen özellikleri karşılayan kanal fabrika yığınını oluşturur. |
BuildChannelFactory<TChannel>(Object[]) |
Belirtilen kanal türünü oluşturan ve bir nesne dizisi tarafından belirtilen özellikleri karşılayan istemcide kanal fabrika yığınını oluşturur. |
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. |
BuildChannelListener<TChannel>(Object[]) |
Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. |
BuildChannelListener<TChannel>(Uri, BindingParameterCollection) |
Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. |
BuildChannelListener<TChannel>(Uri, Object[]) |
Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. |
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) |
Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. |
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) |
Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. |
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) |
Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. |
BuildChannelListener<TChannel>(Uri, String, Object[]) |
Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. |
CanBuildChannelFactory<TChannel>(BindingParameterCollection) |
Geçerli bağlamanın istemcide belirtilen bağlama parametrelerinin koleksiyonunu karşılayan bir kanal fabrika yığını oluşturup oluşturamayacağını belirten bir değer döndürür. |
CanBuildChannelFactory<TChannel>(Object[]) |
Geçerli bağlamanın istemcide 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. |
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ı belirten bir değer döndürür. |
CanBuildChannelListener<TChannel>(Object[]) |
Geçerli bağlamanın hizmette bir nesne dizisinde belirtilen ölçütleri karşılayan bir kanal dinleyici yığını oluşturup oluşturamayacağını belirten bir değer döndürür. |
CreateBindingElements() |
Türetilmiş bir sınıfta geçersiz kılındığında, geçerli bağlamanın parçası olan bağlama öğelerini içeren bir koleksiyon oluşturur. |
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ürlenmiş bir nesne döndürür. |
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. |
ShouldSerializeNamespace() |
Bağlamanın ad alanının seri hale getirilip getirilmeyeceğini döndürür. |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |