Benutzerdefinierte Bindungen
Verwenden Sie die CustomBinding-Klasse, wenn eine der vom System bereitgestellten Bindungen die Anforderungen für Ihren Dienst nicht erfüllt. Alle Bindungen werden anhand einer geordneten Menge von Bindungselementen erstellt. Benutzerdefinierte Bindungen können alleine aus systemeigenen Bindungselementen erstellt werden oder auch benutzerspezifische Bindungselemente umfassen. So können Sie mithilfe von benutzerdefinierten Bindungselementen beispielsweise die Verwendung neuer Transporte oder Encoder an einem Dienstendpunkt aktivieren. Arbeitsbeispiele finden Sie unter Beispiele für benutzerdefinierte Bindungen. Weitere Informationen finden Sie unter <customBinding>.
Aufbau einer benutzerdefinierten Bindung
Eine benutzerdefinierte Bindung wird unter Verwendung des CustomBinding-Konstruktors aus einer Sammlung von Bindungselementen erstellt, die in einer spezifischen Reihenfolge „gestapelt“ sind:
Am Anfang steht eine optionale TransactionFlowBindingElement-Klasse, die den Transaktionsfluss ermöglicht.
Darauf folgt eine optionale ReliableSessionBindingElement-Klasse, die eine Sitzung und Sortiermechanismen wie in der WS-ReliableMessaging-Spezifikation definiert bereitstellt. Eine Sitzung kann SOAP- und Transportvermittler überqueren.
Anschließend folgt eine SecurityBindingElement-Klasse, die Sicherheitsfunktionen wie Autorisierung, Authentifizierung, Schutz und Vertraulichkeit bereitstellt.
Hierauf folgt eine optionale CompositeDuplexBindingElement-Klasse, die eine Duplexkommunikation mit einem Transportprotokoll ermöglicht, das selbst keine Duplexkommunikation unterstützt, z. B. HTTP.
Danach folgt eine optionale OneWayBindingElement-Klasse, die eine unidirektionale Kommunikation bereitstellt.
Dann folgt ein optionales Streamsicherheitsbindungselement, das einem der folgenden Elemente entsprechen kann.
Darauf wiederum folgt ein erforderliches, Nachrichten codierendes Bindungselement. Sie können Ihren eigenen Nachrichtenencoder oder eine von drei Nachrichten codierenden Bindungen verwenden:
Am Ende befindet sich ein erforderliches Transportelement. Sie können einen eigenen Transport verwenden oder eines der folgenden Transportbindungselemente von Windows Communication Foundation (WCF):
In der folgenden Tabelle werden die Optionen für jede Ebene zusammengefasst.
Ebene | Tastatur | Erforderlich |
---|---|---|
Transaktionen | TransactionFlowBindingElement | Nein |
Zuverlässigkeit | ReliableSessionBindingElement | Nein |
Sicherheit | SecurityBindingElement | Nein |
Codierung | Text, binär, Message Transmission Optimization Mechanism (MTOM), benutzerdefiniert | Ja |
Transport | TCP, HTTP, HTTPS, benannte Pipes (Named Pipes, auch als IPC bekannt), Peer-to-Peer (P2P), Message Queuing (auch als MSMQ bekannt), benutzerdefiniert | Ja |
Zusätzlich können Sie Ihre eigenen Bindungselemente definieren und diese zwischen den vorangehenden definierten Ebenen einsetzen.