Aracılığıyla paylaş


Bağlamalar ve Bağlama Öğeleri

Bağlamalar, bir istemci veya hizmet uç noktası oluşturulduğunda hizmet çalışma zamanı tarafından değerlendirilen bağlama öğeleri olarak adlandırılan özel yapılandırma öğeleri koleksiyonlarıdır. Bağlama içindeki bağlama öğelerinin türü ve sırası, bir uç noktanın kanal yığınında protokolün ve aktarım kanallarının seçim ve yığın sırasını belirler.

Bağlamalar, özellikle sistem tarafından sağlanan bağlamalar, genellikle kapsüllenmiş bağlama öğelerinin en yaygın olarak değiştirilen özelliklerini yansıtan bir dizi yapılandırma özelliğine de sahiptir.

Bağlama tam olarak bir aktarım bağlama öğesi içermelidir. Her aktarım bağlama öğesi, bağlamaya en fazla bir ileti kodlama bağlama öğesi eklenerek geçersiz kılınabilen varsayılan bir ileti kodlama bağlama öğesi anlamına gelir. Aktarım ve kodlayıcı bağlama öğelerine ek olarak bağlama, bir uç noktadan diğerine SOAP iletisi göndermek ve hizmet vermek için gereken işlevselliği birlikte uygulayan herhangi bir sayıda protokol bağlama öğesi içerebilir. Ayrıntılar için bkz. Hizmetleri ve İstemcileri Yapılandırmak için Bağlamaları Kullanma.

Bağlamaları ve Bağlama Öğelerini Genişletme

Windows Communication Foundation (WCF), çok çeşitli senaryoları kapsayan sistem tarafından sağlanan bağlamalar içerir. (Daha fazla bilgi için bkz .System-Provided Bağlamaları.) Ancak, WCF'ye dahil olmayan bir bağlama oluşturmanız ve kullanmanız gereken zamanlar olabilir. Aşağıdaki senaryolar yeni bir bağlama oluşturulmasını gerektirir.

  • Yeni bir bağlama öğesi (yeni bir aktarım, kodlama veya protokol bağlama öğesi gibi) kullanmak için, bu bağlama öğesini içeren yeni bir bağlama oluşturmanız gerekir. Örneğin, UDP aktarımı için bir özel UdpTransportBindingElement eklediyseniz, bunu kullanmak için yeni bir bağlama oluşturmanız gerekir. Türünü kullanarak System.ServiceModel.Channels.CustomBinding bu davranışı gerçekleştirme hakkında bilgi için bkz. Özel Bağlamalar.

  • Mevcut bağlama öğelerini, sistemin sağladığı bağlamaları genel alanlarda kullanıma açmadan yapılandırmak için. Örneğin, imzalama ve şifreleme işlemlerinin gerçekleştirildiği sırayı değiştirmek için yeni bir bağlama oluşturmanız gerekir. Bu davranışı gerçekleştirme hakkında bilgi için bkz . Nasıl yapılır: System-Provided Bağlamasını Özelleştirme.

  • Yalnızca belirli yapılandırma seçeneklerini kullanıma sunan kurumsal standart bağlamalar oluşturmak için. Örneğin, şirketiniz için güvenliği devre dışı bırakılamayan bir WSHttpBinding varyantı oluşturmak istiyorsanız, WSHttpBinding gibi davranan ancak güvenliği her zaman açık olan yeni bir bağlama oluşturun. Ayrıntılar için bkz. User-Defined Bağlamaları Oluşturma.

  • Meta verileri özelleştirmek için, genellikle özel bağlama öğelerini yapılandırmak veya kullanmak, ancak bu her zaman gerekli değildir. Bağlamalara ve bağlama öğelerine meta veri desteği sağlama hakkında daha fazla bilgi için bkz . Yapılandırma ve Meta Veri Desteği.

Kanallar, Bağlamalar ve Bağlama Öğeleri

Bağlamalar ve bağlama öğeleri, öznitelikleri ve davranışları içeren uygulama programlama modeli ile fabrikaları ve dinleyicileri, ileti kodlayıcılarını ve aktarım ve protokol uygulamalarını içeren kanal modeli arasındaki bağlantıdır. Genellikle bağlama öğeleri ve bağlamaları, kanalların uygulama katmanı tarafından kullanılmasını sağlamak için uygulanır.

Kanal katmanı hizmet katmanına ileti gönderir veya hizmet katmanından ileti alır ve bu iletileri uç noktalar arasında taşır. bir istemcide kanal katmanı, bir ağ uç noktasına kanal oluşturan bir kanal fabrikaları yığınıdır. Bir hizmette kanal katmanı, bir ağ uç noktasına alınan kanalları kabul eden bir kanal dinleyicileri yığınıdır.

İki genel kanal türü vardır: protokol kanalları ve aktarım kanalları. Aktarım kanalları, bir iletinin bir ağ uç noktasından diğerine gerçek iletiminden sorumludur. Aktarım kanalları varsayılan bir ileti kodlayıcıya sahip olmalı ve bir ileti kodlayıcı bağlama öğesi aracılığıyla sağlanan alternatif bir ileti kodlayıcı kullanabilmelidir. Bir ileti kodlayıcı, bir System.ServiceModel.Channels.Message öğesini kablo gösterimine ve tam tersine dönüştürmekten sorumludur. Protokol kanalları SOAP düzeyinde protokolleri (örneğin, WS-Security veya WS-ReliableMessaging) uygulamakla sorumludur.

Aktarım ve protokol kanalları için birincil gereksinim, gerekli kanal arabirimlerini uygulamasıdır. Çalışma kanalı katmanı oluşturmak için ilişkili fabrikalar, dinleyiciler ve benzeri öğeler olmalıdır. WCF kanal uygulamalarını kullanmak için, her kanal için BindingElement öğesinden türetilmiş ilgili bağlama öğelerinin bulunması ve yapılandırma dosyalarına dahil edilmek için BindingElementExtensionElement öğesinden türetilmiş bir bağlama uzantısı öğesinin olması gerekir.

Daha önce belirtildiği gibi, ileti kodlayıcıları, protokol ve aktarım kanalı uygulamaları için bağlama öğeleri bir kanal yığını oluşturmak üzere yığılabilir ve bunları sıralı bir kümeye dizmek için kullanılan mekanizma bağlamadır. Bağlamalar ve bağlama öğeleri, uygulama programlama modelini kanal modeline bağlar. Kanal uygulamalarınızı doğrudan koddan kullanabilirsiniz, ancak kodlayıcılar, aktarımlar ve protokoller bağlama öğeleri olarak uygulanmadığı sürece hizmet katmanı programlama modelinden kullanılamazlar.

Kanal geliştirme ve bunların bağlama öğeleri hakkında ayrıntılı bilgi için bkz. Kanal Katmanını Genişletme.