Verwenden von Bindungen, um Dienste und Clients zu konfigurieren

Bindungen sind Objekte, die die zum Herstellen einer Verbindung zu einem Endpunkt erforderlichen Kommunikationsdetails angeben. Genauer gesagt enthalten Bindungen Konfigurationsinformationen, die zum Erstellen der Client- oder Dienstlaufzeit durch Festlegen der Merkmale von Transporten, Übertragungsformaten (Nachrichtencodierung) und Protokollen für den entsprechenden Endpunkt oder Clientkanal verwendet werden. Um einen funktionierenden WCF-Dienst (Windows Communication Foundation) zu erstellen, ist für jeden Endpunkt im Dienst eine Bindung erforderlich. In diesem Thema wird erläutert, was Bindungen sind, wie sie definiert werden und wie eine bestimmte Bindung für einen Endpunkt angegeben wird.

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 Informationen in einer Bindung zur Verbindung mit einem Endpunkt in eine der Kategorien in der folgenden Tabelle.

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

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

Codierung
Bestimmt die Nachrichtencodierung, z. B. Text/XML, binär oder MTOM (Message Transmission Optimization Mechanism), die festlegt, wie Nachrichten bei Übertragungen als Bytestreams dargestellt werden.

Vom System bereitgestellte Bindungen

WCF umfasst mehrere vom System bereitgestellte Bindungen, die die meisten Anwendungsanforderungen und -szenarien abdecken sollen. 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 1.1-Spezifikation entspricht (z. B. ASP.NET-Webdienste [ASMX]-basierte Dienste).

  • WSHttpBinding: Eine für Verbindungen zu Endpunkten geeignete HTTP-Protokollbindung, die den Webdienstespezifikations-Protokollen entspricht.

  • NetNamedPipeBinding: Verwendet die binären .NET-Codierungs- und -Framingtechnologien zusammen mit dem Named Pipe-Transport von Windows zur Verbindung mit anderen WCF-Endpunkten auf demselben Computer.

  • NetMsmqBinding: Verwendet die binären .NET-Codierungs- und -Framingtechnologien zusammen mit Message Queuing (MSMQ) zum Erstellen von Message Queuing-Verbindungen mit anderen WCF-Endpunkten.

Eine vollständige Liste der vom System bereitgestellten Bindungen und Beschreibungen finden Sie unter Vom System bereitgestellte Bindungen.

Benutzerdefinierte Bindungen

Wenn die Auflistung vom System bereitgestellter Bindungen nicht die richtige Kombination von Funktionen aufweist, die für eine Dienstanwendung erforderlich ist, können Sie eine CustomBinding-Bindung erstellen. Weitere Informationen zu den Elementen einer CustomBinding-Bindung finden Sie unter <customBinding> und Benutzerdefinierte Bindungen.

Verwenden von Bindungen

Das Verwenden von Bindungen umfasst zwei grundlegende Schritte:

  1. Auswählen oder Definieren einer Bindung. Die einfachste Methode ist, eine vom System bereitgestellte Bindung auszuwählen und ihre 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 und jede Eigenschaft nach Bedarf festlegen.

  2. Erstellen eines Endpunkts, der diese Bindung verwendet.

Code und Konfiguration

Sie können Bindungen durch Code bzw. Konfiguration definieren oder konfigurieren. Diese beiden Ansätze sind unabhängig vom verwendeten Bindungstyp, z. B. ob Sie eine vom System bereitgestellte Bindung oder eine CustomBinding-Bindung verwenden. Im Allgemeinen gibt Ihnen die Verwendung von Code die vollständige Kontrolle über die Definition einer Bindung beim Kompilieren. Bei der Konfiguration kann ein Systemadministrator oder der Benutzer eines WCF-Diensts oder -Clients wiederum die Parameter von Bindungen ändern. Diese Flexibilität ist häufig wünschenswert, da die spezifischen Computeranforderungen und Netzwerkbedingungen, unter denen eine WCF-Anwendung bereitgestellt werden soll, nicht vorhersehbar sind. Durch die Trennung der Bindungsinformationen (und Addressierungsinformationen) vom Code können Administratoren die Bindungsdetails ändern, ohne dass die Anwendung neu kompiliert oder bereitgestellt werden muss. Falls die Bindung im Code definiert ist, überschreibt sie alle in der Konfigurationsdatei vorgenommenen konfigurationsbasierten Definitionen. Beispiele für diese Ansätze finden Sie in den folgenden Themen:

Weitere Informationen