Sdílet prostřednictvím


Vazby a prvky vazeb

Vazby jsou kolekce speciálních konfiguračních prvků označovaných jako prvky vazby, které se vyhodnocují modulem runtime služby při každém vytvoření klienta nebo koncového bodu služby. Typ a pořadí vazeb prvků v rámci vazby určuje pořadí výběru a zásobníku protokolů a přenosových kanálů v zásobníku kanálu koncového bodu.

Vazby, zejména vazby poskytované systémem, mají obvykle také řadu vlastností konfigurace, které odrážejí nejčastěji upravené vlastnosti zapouzdřených prvků vazby.

Vazba musí obsahovat přesně jeden prvek transportní vazby. Každý element vazby přenosu implikuje výchozí element vazby kódování zpráv, který lze přepsat přidáním maximálně jednoho elementu vazby kódování zprávy do vazby. Kromě prvků vazby přenosu a kodéru může vazba obsahovat libovolný počet prvků vazby protokolu, které společně implementují funkce potřebné ke službě a odesílání zpráv SOAP z jednoho koncového bodu do druhého. Podrobnosti najdete v tématu Použití vazeb ke konfiguraci služeb a klientů.

Rozšíření vazeb a elementů vazeb

Windows Communication Foundation (WCF) obsahuje systémové vazby, které pokrývají širokou škálu scénářů. (Další informace najdete v tématu Systémové vazby.) Někdy ale potřebujete vytvořit a použít vazbu, která není součástí WCF. Následující scénáře vyžadují vytvoření nové vazby.

  • Chcete-li použít nový element vazby (například nový transport, kódování nebo element vazby protokolu), musíte vytvořit novou vazbu, která obsahuje tento element vazby. Pokud jste například přidali vlastní UdpTransportBindingElement přenos UDP, budete muset vytvořit novou vazbu, která by ji využila. Informace o provedení tohoto chování pomocí System.ServiceModel.Channels.CustomBinding typu naleznete v tématu Vlastní vazby.

  • Chcete-li nakonfigurovat existující prvky vazby způsobem, který poskytuje systém vazby tak, aby nezpřístupnil veřejné vlastnosti. Musíte například vytvořit novou vazbu, která změní pořadí provádění operací podepisování a šifrování. Informace o provedení tohoto chování naleznete v tématu Postupy: Přizpůsobení vazby poskytované systémem.

  • Vytvoření podnikových standardních vazeb, které zpřístupňují pouze konkrétní možnosti konfigurace. Pokud například chcete vytvořit pro vaši společnost variantu WSHttpBinding vaší společnosti, ve které nelze zakázat zabezpečení, vytvořte novou vazbu, která se chová stejně, WSHttpBindingale se zabezpečením vždy zapnuto. Podrobnosti najdete v tématu Vytváření uživatelem definovaných vazeb.

  • Chcete-li provést určité přizpůsobení metadat, obvykle, ale ne nutně ke konfiguraci nebo použití některého vlastního elementu vazby. Další informace o poskytování podpory metadat pro vazby a prvky vazby naleznete v tématu Konfigurace a podpora metadat.

Kanály, vazby a prvky vazby

Vazby a prvky vazby jsou propojením mezi programovacím modelem aplikace, který zahrnuje atributy a chování, a model kanálu, který zahrnuje továrny a naslouchací procesy, kodéry zpráv a implementace přenosu a protokolu. Obvykle se implementují vazbové prvky a vazby, které umožňují, aby kanály používala aplikační vrstva.

Vrstva kanálu předává zprávy do vrstvy služby a přijímá zprávy z vrstvy služby a přenáší tyto zprávy mezi koncovými body. V klientovi je vrstva kanálu zásobníkem kanálů továren, které vytvářejí kanály do koncového bodu sítě. Ve službě je vrstva kanálu zásobníkem naslouchacích procesů kanálu, které přijímají kanály přijaté v koncovém bodu sítě.

Existují dva obecné typy kanálů: protokolové kanály a přenosové kanály. Přenosové kanály zodpovídají za skutečný přenos zprávy z jednoho koncového bodu sítě do druhého. Přenosové kanály musí mít výchozí kodér zpráv a měly by být schopné používat alternativní kodér zpráv zadaný prostřednictvím elementu vazby kodéru zpráv. Kodér zpráv zodpovídá za přeměnu System.ServiceModel.Channels.Message na drátovou reprezentaci a naopak. Kanály protokolu zodpovídají za implementaci protokolů na úrovni SOAP (například WS-Security nebo WS-ReliableMessaging).

Primárním požadavkem pro přenosové a protokolové kanály je, že implementují požadovaná rozhraní kanálu. K vytvoření pracovní vrstvy kanálu musí mít přidružené továrny a naslouchací procesy atd. Aby bylo možné použít implementace kanálů z WCF, musí být přidružené vazby prvky odvozené z BindingElement každého kanálu a měl by existovat související element rozšíření vazby pro zahrnutí do konfiguračních souborů odvozených z BindingElementExtensionElement.

Jak už bylo zmíněno dříve, vazby prvků pro kodéry zpráv, protokol a implementace přenosového kanálu lze naskládat tak, aby vytvořily zásobník kanálů a mechanismus, který je zarovná do seřazené sady, je vazba. Vazby a prvky vazby propojují programovací model aplikace s modelem kanálu. Implementace kanálů můžete použít přímo z kódu, ale pokud nejsou kodéry, přenosy a protokoly implementovány jako prvky vazby, které nelze použít z programovacího modelu vrstvy služby.

Podrobnosti o vývoji kanálů a jejich vazeb najdete v tématu Rozšíření vrstvy kanálu.