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. Sistem Tarafından Sağlanan 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, sistem tarafından sağlanan bağlamaların genel özelliklerde kullanıma sunulmaması için yapılandıracak şekilde 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: Sistem Tarafından Sağlanan Bağlamayı Ö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ğin WSHttpBinding devre dışı bırakılamayacağı bir değişken oluşturmak için, gibi WSHttpBindingdavranan ancak güvenlik her zaman açık olan yeni bir bağlama oluşturun. Ayrıntılar için bkz . Kullanıcı Tanımlı Bağlamalar Oluşturma.
Meta verilerin bazı özelleştirmelerini gerçekleştirmek için, ancak bazı özel bağlama öğelerinin yapılandırılması veya kullanılması şart 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. İleti kodlayıcı, bir tel temsiline ve tam tersi bir gösterime dönüştürmekle System.ServiceModel.Channels.Message 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 ve dinleyiciler vb. olmalıdır. WCF'den kanal uygulamalarını kullanmak için, her kanal için öğesinden BindingElement türetilen ilişkili bağlama öğelerinin olması ve öğesinden BindingElementExtensionElementtüretilen yapılandırma dosyalarına dahil edilmesi için ilgili bir bağlama uzantısı öğesi 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.