Vom System bereitgestellte Bindungen

Bindungen geben den Kommunikationsmechanismus für die Kommunikation mit einem Endpunkt und die zum Herstellen einer Verbindung mit einem Endpunkt erforderlichen Kommunikationsdetails an. Eine Bindung enthält die folgenden Elemente:

  • Der Protokollstapel legt die Einstellungen bezüglich Sicherheit, Zuverlässigkeit und Kontextablauf fest, die beim Senden von Nachrichten zum Endpunkt verwendet werden.

  • Die Transportebene bestimmt das zugrunde liegende Transportprotokoll, das zum Senden von Nachrichten zum Endpunkt verwendet werden soll, beispielsweise TCP oder HTTP.

  • Die Codierung bestimmt die Nachrichtencodierung, die für Nachrichten verwendet werden soll, die an den Endpunkt gesendet werden. Beispielsweise Text/XML, binär, Message Transmission Optimization Mechanism (MTOM).

In diesem Artikel sind alle vom System bereitgestellten WCF-Bindungen (Windows Communication Foundation) aufgeführt. Wenn keine dieser Bindungen die Kriterien der Anwendung erfüllt, können Sie eine benutzerdefinierte Bindung erstellen. Weitere Informationen zum Erstellen benutzerdefinierter Bindungen finden Sie unter Benutzerdefinierte Bindungen.

Eine sichere und vollständig kompatible Bindung, die das WS-Federationprotokoll unterstützt, ermöglicht es einem Verbund angehörenden Organisationen, Benutzer effizient zu authentifizieren und zu autorisieren.

Wichtig

Wählen Sie immer eine Bindung aus, die Sicherheitsfunktionen einschließt. Standardmäßig weisen alle Bindungen mit Ausnahme des <basicHttpBinding>-Elements aktivierte Sicherheitsfunktionen auf. Wenn Sie keine sichere Bindung auswählen oder Sicherheitsfunktionen deaktivieren, müssen Sie die Daten auf eine andere Weise schützen, z. B. durch ein geschütztes Rechenzentrum oder ein isoliertes Netzwerk.

Wichtig

Verwenden Sie nur dann Duplexverträge mit Bindungen, die keine Sicherheitsfunktionen unterstützen oder bei denen die Sicherheitsfunktionen deaktiviert sind, wenn Sie die Daten auf andere Weise schützen.

Die folgenden Bindungen sind im Lieferumfang von WCF enthalten.

Bindung Konfigurationselement BESCHREIBUNG
BasicHttpBinding <basicHttpBinding> Eine Bindung, die sich für die Kommunikation mit Webdiensten eignet, die mit WS-Basic Profile kompatibel sind, beispielsweise auf ASP.NET-Webdiensten (ASMX) basierende Dienste. Diese Bindung verwendet HTTP als Transport und Text/XML als Standardnachrichtencodierung.
WSHttpBinding <wsHttpBinding> Eine sichere und vollständig kompatible Bindung, die sich für Nicht-Duplexdienstverträge eignet.
WSDualHttpBinding <wsDualHttpBinding> Eine sichere und vollständig kompatible Bindung, die für Duplexdienstverträge oder für die Kommunikation über SOAP-Vermittler geeignet ist.
WSFederationHttpBinding <wsFederationHttpBinding> Eine sichere und vollständig kompatible Bindung, die das WS-Verbundsprotokoll unterstützt, die es einem Verbund angehörenden Organisationen ermöglicht, Benutzer effizient zu authentifizieren und zu autorisieren.
NetHttpBinding <netHttpBinding> Eine für die Nutzung von HTTP- oder WebSocket-Diensten entwickelte Bindung, die standardmäßig die binäre Codierung verwendet.
NetHttpsBinding <netHttpsBinding> Eine für die Nutzung von HTTP- oder WebSocket-Diensten entwickelte sichere Bindung, die standardmäßig die binäre Codierung verwendet.
NetTcpBinding <netTcpBinding> Eine sichere und optimierte Bindung, die sich für die computerübergreifende Kommunikation zwischen WCF-Anwendungen eignet.
NetNamedPipeBinding <netNamedPipeBinding> Eine sichere, zuverlässige und optimierte Bindung, die sich für die Kommunikation zwischen WCF-Anwendungen auf einem Computer eignet.
NetMsmqBinding <netMsmqBinding> Eine der Warteschlange hinzugefügte Bindung, die sich für eine computerübergreifende Kommunikation zwischen WCF-Anwendungen eignet.
NetPeerTcpBinding <netPeerTcpBinding> Eine Bindung, die eine sichere Kommunikation zwischen mehreren Computern ermöglicht.
MsmqIntegrationBinding <msmqIntegrationBinding> Eine Bindung, die sich für eine computerübergreifende Kommunikation zwischen einer WCF-Anwendung und vorhandenen Message Queuing-Anwendungen eignet.
BasicHttpContextBinding <basicHttpContextBinding> Eine Bindung, die sich für die Kommunikation mit Webdiensten eignet, die mit WS-Basic Profile kompatibel sind, und so die Verwendung von HTTP-Cookies zum Austauschen von Kontext ermöglicht.
NetTcpContextBinding <netTcpContextBinding> Eine sichere und optimierte Bindung, die sich für die computerübergreifende Kommunikation zwischen WCF-Anwendungen eignet und so die Verwendung von SOAP-Headern zum Austauschen von Kontext ermöglicht.
WebHttpBinding <webHttpBinding> Eine Bindung, die zum Konfigurieren von Endpunkten für WCF-Webdienste verwendet wird, die durch HTTP-Anforderungen und nicht durch SOAP-Nachrichten bereitgestellt werden.
WSHttpContextBinding <wsHttpContextBinding> Eine sichere und vollständig kompatible Bindung, die sich für Nicht-Duplexdienstverträge eignet und so die Verwendung von SOAP-Headern zum Austauschen von Kontext ermöglicht.
UdpBinding <udpBinding> Eine Bindung, die verwendet werden soll, wenn eine große Menge einfacher Nachrichten an eine große Anzahl von Clients gleichzeitig gesendet werden soll.

In der folgenden Tabelle sind die Funktionen der einzelnen vom System bereitgestellten Bindungen dargestellt. Die Bindungen sind in den Tabellenspalten angegeben. Die Funktionen werden in den Zeilen aufgelistet und in der zweiten Tabelle beschrieben. In der folgenden Tabelle werden die im Zusammenhang mit Bindungen verwendeten Abkürzungen erklärt. Zur Auswahl einer Bindung ermitteln Sie, welche Spalte in den Zeilen alle Funktionen enthält, die Sie benötigen.

Bindung Interoperabilität Sicherheit (Standard) Sitzung
(Standardwert)
Transaktionen Duplex Codierung (Standard) Streaming
(Standardwert)
BasicHttpBinding Basic Profile 1.1 (Keine), Transport, Nachricht, Gemischt (Keine) (Keine) Text, (MTOM) Ja
(gepuffert)
WSHttpBinding WS Transport, (Nachricht), Gemischt (Keine), zuverlässige Sitzung, Sicherheitssitzung (Keine), Ja (Text), MTOM Nein
WSDualHttpBinding WS (Nachricht), Keine (Zuverlässige Sitzung), Sicherheitssitzung (Keine), Ja Ja (Text), MTOM Nein
WSFederationHttpBinding WS-Federation (Nachricht), Gemischt, Keine (Keine), zuverlässige Sitzung, Sicherheitssitzung (Keine), Ja Nein (Text), MTOM Nein
NetHttpBinding .NET (Keine), Transport, Nachricht, TransportWithMessageCredential, TransportCredentialOnly Siehe den Hinweis unten. Keine Siehe den Hinweis unten. (Binär), Text, MTOM Ja (gepuffert)
NetHttpsBinding .NET (Transport), TransportWithMessageCredential Siehe den Hinweis unten. Keine Siehe den Hinweis unten. (Binär), Text, MTOM Ja
(gepuffert)
NetTcpBinding .NET (Transport), Nachricht, Keine, Gemischt (Transport), zuverlässige Sitzung, Sicherheitssitzung (Keine), Ja Ja Binär Ja
(gepuffert)
NetNamedPipeBinding .NET (Transport), Keine Keine, (Transport) (Keine), Ja Ja Binär Ja
(gepuffert)
NetMsmqBinding .NET Nachricht, (Transport), Keine Keine, (Transport) Keine, (Ja) Nein Binär Nein
NetPeerTcpBinding Peer (Transport) (Keine) (Keine) Ja Nein
MsmqIntegrationBinding MSMQ (Transport) (Keine) Keine, (Ja) Nein
BasicHttpContextBinding Basic Profile 1.1 (Keine), Transport, Nachricht, Gemischt (Keine) (Keine) Text, (MTOM) Ja
(gepuffert)
NetTcpContextBinding .NET (Transport), Nachricht, Keine, Gemischt (Transport), zuverlässige Sitzung, Sicherheitssitzung (Keine), Ja Ja Binär Ja
(gepuffert)
WSHttpContextBinding WS Transport, (Nachricht), Gemischt (Keine), zuverlässige Sitzung, Sicherheitssitzung (Keine), Ja Text, (MTOM) Nein
UdpBinding

Hinweis: Interoperabilität lässt sich durch Implementieren der SOAP-über-UDP-Standardspezifikation erzielen, die von dieser Bindung implementiert wird.
.NET (Keine) (Keine) (Keine) (Text) Nein

Wichtig

NetHttpBinding ist eine für die Nutzung von HTTP- oder WebSocket-Diensten entwickelte Bindung, die standardmäßig die binäre Codierung verwendet. Die NetHttpBinding erkennt, ob sie mit einem Anforderung-Antwort-Vertrag oder einem Duplexvertrag verwendet wird, und ändert das Verhalten entsprechend, indem HTTP für Anforderung-Antwort und WebSockets für Duplex verwendet werden. Dieses Verhalten kann mithilfe der WebSocketTransportUsage-Bindungseinstellung überschrieben werden: „WhenDuplex“ ist der Standardwert, der das oben beschriebene Verhalten aufweist. Never: Verhindert die Verwendung von WebSockets. Der Versuch, einen Duplexvertrag mit dieser Einstellung zu verwenden, löst eine Ausnahme aus. Always: Erzwingt die Verwendung von WebSockets sogar für Anforderung-Antwort-Verträge. NetHttpBinding unterstützt zuverlässige Sitzungen im HTTP-Modus und WebSocket-Modus. Im WebSocket-Modus werden Sitzungen vom Transport bereitgestellt.

Die in der vorstehenden Tabelle aufgeführten Funktionen werden in der folgenden Tabelle erläutert.

Funktion BESCHREIBUNG
Interoperabilitätstyp Benennt das Protokoll oder die Technologie, mit dem bzw. der in der Bindung die Zusammenarbeit sichergestellt wird.
Sicherheit Gibt an, wie der Kanal geschützt wird.
– Keine: Die SOAP-Nachricht wird nicht geschützt, und der Client wird nicht authentifiziert.
– Transport: Die Sicherheitsanforderungen werden auf der Transportebene erfüllt.
– Nachricht: Die Sicherheitsanforderungen werden auf der Nachrichtenebene erfüllt.
– Gemischt: Ansprüche werden in der Nachricht übermittelt, Anforderungen an Integrität und Vertraulichkeit werden auf der Transportebene erfüllt.
Sitzung Gibt an, ob die betreffende Bindung Sitzungsverträge unterstützt.
Transaktionen Gibt an, ob Transaktionen ermöglicht werden.
Duplex Gibt an, ob Duplexverträge unterstützt werden. Beachten Sie, dass diese Funktion in der Bindung Unterstützung für Sitzungen erfordert.
Codierung Gibt das Übertragungsformat der Nachricht an. Zulässige Werte sind:
– Text: beispielsweise UTF-8.
– Binär
– MTOM (Message Transmission Optimization Mechanism): Eine Methode zur effizienten Codierung binärer XML-Elemente im Kontext eines SOAP-Umschlags.
Streaming Gibt an, ob Streaming für eingehende und ausgehende Nachrichten unterstützt wird. Der Wert wird mithilfe der TransferMode-Eigenschaft für die Bindung festgelegt. Zulässige Werte sind:
- Buffered: Sowohl Anforderungen als auch Antwortnachrichten werden gepuffert.
- Streamed: Sowohl Anforderungen als auch Antwortnachrichten werden per Stream übertragen.
- StreamedRequest: Die Anforderungsnachricht wird als Stream übertragen, und die Antwortnachricht wird gepuffert.
- StreamedResponse: Die Anforderungsnachricht wird gepuffert, und die Antwortnachricht wird als Stream übertragen.

Weitere Informationen