Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Bindingen zijn verzamelingen speciale configuratie-elementen, bindingselementen genoemd, die worden geëvalueerd door de serviceruntime wanneer een client of service-eindpunt wordt samengesteld. Het type en de volgorde van de bindingselementen binnen een binding bepaalt de selectie- en stapelvolgorde van het protocol en de transportkanalen in de kanaalstack van een eindpunt.
Bindingen, met name de door het systeem geleverde bindingen, hebben meestal ook een aantal configuratie-eigenschappen die de meest gewijzigde eigenschappen van de ingekapselde bindingselementen weerspiegelen.
Een binding moet precies één transportbindingselement bevatten. Elk transportbindingselement impliceert een standaardbindingselement voor berichtcodering, dat kan worden overschreven door maximaal één berichtcoderingselement toe te voegen aan de binding. Naast de transport- en encoderbindingselementen kan de binding een willekeurig aantal protocolbindingselementen bevatten die samen de functionaliteit implementeren die nodig is voor de service en het verzenden van een SOAP-bericht van het ene eindpunt naar het andere. Zie Bindingen gebruiken om services en clients te configureren voor meer informatie.
Bindingen en bindingselementen uitbreiden
Windows Communication Foundation (WCF) bevat door het systeem geleverde bindingen die betrekking hebben op een breed scala aan scenario's. (Zie System-Provided Bindingen voor meer informatie.) Het kan echter voorkomen dat u een binding moet maken en gebruiken die niet is opgenomen in WCF. Voor de volgende scenario's is het maken van een nieuwe binding vereist.
Als u een nieuw bindingselement (zoals een nieuw transport-, coderings- of protocolbindingselement) wilt gebruiken, moet u een nieuwe binding maken die dat bindingselement bevat. Als u bijvoorbeeld een aangepaste
UdpTransportBindingElement
voor UDP-transport hebt toegevoegd, moet u een nieuwe binding maken om er gebruik van te maken. Zie System.ServiceModel.Channels.CustomBinding voor informatie over het uitvoeren van dit gedrag met behulp van het type.Bestaande bindingselementen configureren op een manier zodat de systeemgeleverde bindingen niet blootgesteld worden aan openbare eigenschappen. U moet bijvoorbeeld een nieuwe binding maken om de volgorde te wijzigen waarin ondertekenings- en versleutelingsbewerkingen worden uitgevoerd. Zie Instructies voor het aanpassen van een System-Provided Binding voor informatie over het uitvoeren van dit gedrag.
Als u bedrijfsstandaardbindingen wilt instellen die alleen specifieke configuratieopties beschikbaar maken. Als u bijvoorbeeld voor uw bedrijf een variant wilt maken van het WSHttpBinding voor uw bedrijf waarin beveiliging niet kan worden uitgeschakeld, maakt u een nieuwe binding die zich gedraagt als de WSHttpBinding, maar met de beveiliging altijd ingeschakeld. Zie User-Defined Bindingen maken voor meer informatie.
Als u bepaalde aanpassingen van metagegevens wilt uitvoeren, moet u meestal maar niet noodzakelijkerwijs een aangepast bindingselement configureren of gebruiken. Zie Configuratie- en metagegevensondersteuning voor meer informatie over het bieden van ondersteuning voor metagegevens aan bindingen en bindingselementen.
Kanalen, bindingen en bindingselementen
Bindingen en bindingselementen zijn de verbinding tussen het toepassingsprogrammeermodel, dat de kenmerken en het gedrag bevat, en het kanaalmodel, dat de factory's en listeners, berichtcoderingsprogramma's en transport- en protocol-implementaties omvat. Bindingselementen en bindingen worden doorgaans geïmplementeerd om kanalen in te schakelen die door de toepassingslaag kunnen worden gebruikt.
De kanaallaag draagt berichten van en naar de servicelaag af of ontvangt deze berichten tussen eindpunten. Op een client is de kanaallaag een stapel kanaalfactories die kanalen naar een netwerkeindpunt creëren. In een service is de kanaallaag een stapel kanaallisteners die kanalen accepteren die zijn ontvangen op een netwerkeindpunt.
Er zijn twee algemene soorten kanalen: protocolkanalen en transportkanalen. Transportkanalen zijn verantwoordelijk voor de daadwerkelijke overdracht van een bericht van het ene netwerkeindpunt naar het andere. Transportkanalen moeten een standaardberichtcoderingsprogramma hebben en moeten een alternatief berichtcoderingsprogramma kunnen gebruiken dat is opgegeven via een bindingselement van het berichtcoderingsprogramma. Een berichtencoder is verantwoordelijk voor het omzetten van een System.ServiceModel.Channels.Message in een draadweergave en vice versa. Protocolkanalen zijn verantwoordelijk voor het implementeren van SOAP-protocollen (bijvoorbeeld WS-Security of WS-ReliableMessaging).
De primaire vereiste voor transport- en protocolkanalen is dat ze de vereiste kanaalinterfaces implementeren. Om een werkende kanalenlaag te creëren, moeten ze gekoppelde fabrieken en luisteraars hebben. Als u de implementaties van kanalen van WCF wilt gebruiken, moet er een gekoppeld bindings-element zijn afgeleid van BindingElement voor elk kanaal, en er moet een gerelateerd bindings-uitbreidingselement zijn voor opname in configuratiebestanden dat is afgeleid van BindingElementExtensionElement.
Zoals eerder vermeld, kunnen bindingselementen voor berichtcoderingsprogramma's, protocol- en transportkanaal-implementaties worden gestapeld om een kanaalstack te vormen en is het mechanisme om ze in een geordende set te plaatsen de binding. Bindingen en bindingselementen verbinden het toepassingsprogrammeermodel met het kanaalmodel. U kunt uw kanaal-implementaties rechtstreeks vanuit code gebruiken, maar tenzij encoders, transporten en protocollen worden geïmplementeerd als bindingselementen, kunnen ze niet worden gebruikt vanuit het programmeermodel van de servicelaag.
Zie De kanaallaag uitbreiden voor meer informatie over het ontwikkelen van kanalen en de bijbehorende bindingselementen.