Übersicht über Windows Communication Foundation-Bindungen

Bindungen sind Objekte zur Angabe der Kommunikationsdetails, die zum Herstellen einer Verbindung mit dem Endpunkt eines WCF-Diensts (Windows Communication Foundation) erforderlich sind. Jeder Endpunkt in einem WCF-Dienst erfordert eine wohldefinierte Bindung. In diesem Thema werden die von Bindungen definierten Typen von Kommunikationsdetails, die Elemente einer Bindung, die in WCF enthaltenen Bindungen sowie die Methoden zum Angeben einer Bindung für einen Endpunkt aufgeführt.

Was eine Bindung definiert

Die Informationen in einer Bindung können sehr einfach oder sehr komplex sein. Die einfachste Bindung gibt nur das Transportprotokoll (wie HTTP) an, das für die Verbindung zum Endpunkt verwendet werden muss. Allgemeiner gesagt fallen die in einer Bindung enthaltenen Informationen zur Verbindung mit einem Endpunkt in eine der folgenden Kategorien:

Protokolle
Bestimmt den verwendeten Sicherheitsmechanismus, entweder zuverlässige Messagingfähigkeit oder Transaktionskontextablauf-Einstellungen.

Codieren
Bestimmt die Nachrichtencodierung (z. B. Text oder binär).

Transport
Bestimmt das zu verwendende zugrunde liegende Transportprotokoll (z. B. TCP oder HTTP).

Die Elemente einer Bindung

Eine Bindung besteht im Allgemeinen aus einem geordneten Stapel von Bindungselementen, die jeweils einen Teil der für die Verbindung zu einem Dienstendpunkt erforderlichen Kommunikationsinformationen angeben. Die beiden niedrigsten Ebenen im Stapel sind jeweils erforderlich. An der Basis des Stapels befindet sich das Transportbindungselement und unmittelbar darüber das Element, das die Spezifikationen für die Nachrichtencodierung enthält. Die optionalen Bindungselemente, die die anderen Kommunikationsprotokolle angeben, befinden sich in den Ebenen oberhalb dieser beiden erforderlichen Elemente. Weitere Informationen zu diesen Bindungselementen und ihrer richtigen Reihenfolge finden Sie unter Benutzerdefinierte Bindungen.

Vom System bereitgestellte Bindungen

Die Informationen in einer Bindung können komplex sein, und einige Einstellungen sind möglicherweise mit anderen nicht kompatibel. Aus diesem Grund umfasst WCF eine Reihe vom System bereitgestellter Bindungen. Diese Bindungen sind für die meisten Anwendungsanforderungen vorgesehen. Die folgenden Klassen stellen einige Beispiele für vom System bereitgestellte Bindungen dar:

  • BasicHttpBinding: Eine für Verbindungen zu Webdiensten geeignete HTTP-Protokollbindung, die der WS-I Basic Profile-Spezifikation entspricht (z. B. auf ASP.NET-Webdiensten basierte Dienste).

  • WSHttpBinding: Eine für Verbindungen zu Endpunkten geeignete interoperable Bindung, die den WS-*-Protokollen entspricht.

  • NetNamedPipeBinding: Verwendet das .NET Framework zum Herstellen von Verbindungen mit anderen WCF-Endpunkten auf demselben Computer.

  • NetMsmqBinding: Verwendet das .NET Framework zum Herstellen von Warteschlangennachrichten-Verbindungen mit anderen WCF-Endpunkten.

  • NetTcpBinding: Diese Bindung bietet eine höhere Leistung als HTTP-Bindungen und eignet sich ideal für die Verwendung in einem lokalen Netzwerk.

Eine vollständige Liste der vom System bereitgestellten Bindungen sowie die zugehörigen Beschreibungen finden Sie unter Vom System bereitgestellte Bindungen.

Verwenden der eigenen Bindungen

Wenn keine der vom System bereitgestellten Bindungen über die richtige Kombination von Funktionen verfügt, die für eine Dienstanwendung erforderlich sind, können Sie eine eigene Bindung erstellen. Es gibt hierbei zwei Möglichkeiten. Sie können eine neue Bindung entweder mithilfe eines CustomBinding-Objekts aus bereits vorhandenen Bindungselementen erstellen oder durch Ableiten von der Binding-Bindung eine vollständig benutzerdefinierte Bindung erstellen. Weitere Informationen zum Erstellen einer eigenen Bindung mit diesen beiden Ansätzen finden Sie unter Benutzerdefinierte Bindungen und unter Erstellen benutzerdefinierter Bindungen.

Verwenden von Bindungen

Das Verwenden von Bindungen umfasst zwei grundlegende Schritte:

  1. Auswählen oder Definieren einer Bindung. Die einfachste Methode besteht darin, eine in WCF enthaltene, vom System bereitgestellte Bindung auszuwählen und sie mit ihren Standardeinstellungen zu verwenden. Sie können auch eine vom System bereitgestellte Bindung auswählen und ihre Eigenschaftswerte zurücksetzen, um sie Ihren Anforderungen anzupassen. Alternativ können Sie eine benutzerdefinierte Bindung erstellen, um ein höheres Maß an Steuerung und Anpassung zu erreichen.

  2. Erstellen Sie einen Endpunkt, der die ausgewählte oder definierte Bindung verwendet.

Code und Konfiguration

Sie können Bindungen mit zwei Methoden definieren: durch Code oder durch Konfiguration. Diese beiden Ansätze hängen nicht davon ab, ob Sie eine vom System bereitgestellte Bindung oder eine benutzerdefinierte Bindung verwenden. Im Allgemeinen gibt Ihnen die Verwendung von Code die vollständige Kontrolle über die Definition einer Bindung zur Entwurfszeit. Mit der Konfiguration können andererseits Systemadministrator*innen oder Benutzer*innen eines WCF-Diensts oder -Clients die Parameter einer Bindung ändern, ohne die Dienstanwendung neu kompilieren zu müssen. Diese Flexibilität ist häufig wünschenswert, da die spezifischen Computeranforderungen, für die eine WCF-Anwendung bereitgestellt werden soll, nicht vorhersehbar sind. Das Ausschließen der Bindungsinformationen (und der Adressierungsinformationen) aus dem Code ermöglicht deren Änderung, ohne die Anwendung neu kompilieren oder erneut bereitstellen zu müssen. Beachten Sie, dass im Code definierte Bindungen nach in der Konfiguration angegebenen Bindungen erstellt werden, sodass die durch den Code definierten Bindungen alle durch die Konfiguration definierten Bindungen überschreiben können.

Siehe auch