Übersicht über Windows Communication Foundation-BindungenWindows Communication Foundation Bindings Overview

Bindungen sind Objekte, mit denen die Kommunikationsdetails angeben, die eine Verbindung mit dem Endpunkt eines Windows Communication Foundation (WCF)-Diensts erforderlich sind.Bindings are objects that are used to specify the communication details that are required to connect to the endpoint of a Windows Communication Foundation (WCF) service. Jeder Endpunkt in einem WCF-Dienst erfordert eine korrekt angegebene Bindung.Each endpoint in a WCF service requires a binding to be well-specified. Dieses Thema beschreibt die Typen von Kommunikationsdetails, die die Bindungen definieren, die Elemente einer Bindung, welche Bindungen in WCF enthalten sind und wie eine Bindung für einen Endpunkt angegeben werden kann.This topic outlines the types of communication details that the bindings define, the elements of a binding, what bindings are included in WCF, and how a binding can be specified for an endpoint.

Was eine Bindung definiertWhat a Binding Defines

Die Informationen in einer Bindung können sehr einfach oder sehr komplex sein.The information in a binding can be very basic, or very complex. Die einfachste Bindung gibt nur das Transportprotokoll (wie HTTP) an, das für die Verbindung zum Endpunkt verwendet werden muss.The most basic binding specifies only the transport protocol (such as HTTP) that must be used to connect to the endpoint. Allgemeiner gesagt fallen die Informationen in einer Bindung zur Verbindung mit einem Endpunkt in eine der folgenden Kategorien.More generally, the information a binding contains about how to connect to an endpoint falls into one of the following categories.

ProtokolleProtocols
Bestimmt den verwendeten Sicherheitsmechanismus, entweder zuverlässige Messagingfähigkeit oder Transaktionskontextablauf-Einstellungen.Determines the security mechanism being used: either reliable messaging capability or transaction context flow settings.

CodierungEncoding
Bestimmt die Nachrichtencodierung (z. B. Text oder binär).Determines the message encoding (for example, text or binary).

TransportTransport
Bestimmt das zu verwendende zugrunde liegende Transportprotokoll (z. B. TCP oder HTTP).Determines the underlying transport protocol to use (for example, TCP or HTTP).

Die Elemente einer BindungThe Elements of a Binding

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.A binding basically consists of an ordered stack of binding elements, each of which specifies part of the communication information required to connect to a service endpoint. Die beiden niedrigsten Ebenen im Stapel sind jeweils erforderlich.The two lowest layers in the stack are both required. An der Basis des Stapels befindet sich das Transportbindungselement und unmittelbar darüber das Element, das die Spezifikationen für die Nachrichtencodierung enthält.At the base of the stack is the transport binding element and just above this is the element that contains the message encoding specifications. Die optionalen Bindungselemente, die die anderen Kommunikationsprotokolle angeben, befinden sich in den Ebenen oberhalb dieser beiden erforderlichen Elemente.The optional binding elements that specify the other communication protocols are layered above these two required elements. Weitere Informationen zu diesen Bindungselementen und die richtige Reihenfolge, finden Sie unter benutzerdefinierte Bindungen.For more information about these binding elements and their correct ordering, see Custom Bindings.

Vom System bereitgestellte BindungenSystem-Provided Bindings

Die Informationen in einer Bindung können komplex sein, und einige Einstellungen sind möglicherweise mit anderen nicht kompatibel.The information in a binding can be complex, and some settings may not be compatible with others. Aus diesem Grund enthält WCF eine Reihe von vom System bereitgestellte Bindungen.For this reason, WCF includes a set of system-provided bindings. Diese Bindungen sind für die meisten Anwendungsanforderungen vorgesehen.These bindings are designed to cover most application requirements. Die folgenden Klassen stellen einige Beispiele für vom System bereitgestellte Bindungen dar:The following classes represent some examples of system-provided bindings:

  • 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).BasicHttpBinding: An HTTP protocol binding suitable for connecting to Web services that conforms to the WS-I Basic Profile specification (for example, ASP.NET Web services-based services).

  • WSHttpBinding: Eine für Verbindungen zu Endpunkten geeignete interoperable Bindung, die den WS-*-Protokollen entspricht.WSHttpBinding: An interoperable binding suitable for connecting to endpoints that conform to the WS-* protocols.

  • NetNamedPipeBinding: Verwendet die .NET Framework.NET Framework zur Verbindung mit anderen WCF-Endpunkten auf demselben Computer.NetNamedPipeBinding: Uses the .NET Framework.NET Framework to connect to other WCF endpoints on the same machine.

  • NetMsmqBinding: Verwendet die .NET Framework.NET Framework Nachrichten in der Warteschlange Verbindungen mit anderen WCF-Endpunkten zu erstellen.NetMsmqBinding: Uses the .NET Framework.NET Framework to create queued message connections with other WCF endpoints.

Eine vollständige Liste mit Beschreibungen, der alle bereitgestellten WCF Bindungen finden Sie unter sicherheitsbindungsarten Bindungen.For a complete list, with descriptions, of all the WCF-provided bindings, see System-Provided Bindings.

Verwenden der eigenen BindungenUsing Your Own Bindings

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.If none of the system-provided bindings included has the right combination of features that a service application requires, you can create your own binding. Hierfür gibt es zwei Möglichkeiten.There are two ways to do this. 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.You can either create a new binding from pre-existing binding elements using a CustomBinding object or you can create a completely user-defined binding by deriving from the Binding binding. Weitere Informationen zum Erstellen einer eigene Bindung, die mithilfe der folgenden zwei Ansätze, finden Sie unter benutzerdefinierte Bindungen und Erstellen benutzerdefinierter Bindungen.For more information about creating your own binding using these two approaches, see Custom Bindings and Creating User-Defined Bindings.

Verwenden von BindungenUsing Bindings

Das Verwenden von Bindungen umfasst zwei grundlegende Schritte:Using bindings entails two basic steps:

  1. Auswählen oder Definieren einer Bindung.Select or define a binding. Die einfachste Methode ist, wählen eine der vom System bereitgestellte Bindungen, die in WCF und mit ihren Standardeinstellungen verwenden.The easiest method is to choose one of the system-provided bindings included with WCF and use it with its default settings. Sie können auch eine vom System bereitgestellte Bindung auswählen und ihre Eigenschaftswerte zurücksetzen, um sie Ihren Anforderungen anzupassen.You can also choose a system-provided binding and reset its property values to suit your requirements. Alternativ können Sie eine benutzerdefinierte Bindung erstellen, um ein höheres Maß an Steuerung und Anpassung zu erreichen.Alternatively, you can create a custom binding or a user-defined binding to have higher degrees of control and customization.

  2. Erstellen Sie einen Endpunkt, der die ausgewählte oder definierte Bindung verwendet.Create an endpoint that uses the binding selected or defined.

Code und KonfigurationCode and Configuration

Sie können Bindungen mit zwei Methoden definieren: durch Code oder durch Konfiguration.You can define bindings in two ways: through code or through configuration. Diese beiden Ansätze hängen nicht davon ab, ob Sie eine vom System bereitgestellte Bindung oder eine benutzerdefinierte Bindung verwenden.These two approaches do not depend on whether you are using a system-provided binding or a custom binding. Im Allgemeinen gibt Ihnen die Verwendung von Code die vollständige Kontrolle über die Definition einer Bindung zur Entwurfszeit.In general, using code gives you complete control over the definition of a binding at design time. Konfiguration kann andererseits, ein Systemadministrator oder der Benutzer eines WCF-Diensts oder Clients die Parameter einer Bindung ändern, ohne die dienstanwendung neu kompilieren.Using configuration, on the other hand, allows a system administrator or the user of a WCF service or client to change the parameters of a binding without having to recompile the service application. Diese Flexibilität ist häufig wünschenswert, da es gibt keine Möglichkeit, die spezifischen computeranforderungen Vorhersagen für die ist eine WCF-Anwendung bereitgestellt werden.This flexibility is often desirable because there is no way to predict specific machine requirements on which a WCF application is to be deployed. 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.Keeping the binding (and the addressing) information out of the code allows them to change without requiring recompilation or redeployment of the application. 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.Note that bindings defined in code are created after bindings specified in configuration, allowing the code-defined bindings to overwrite any configuration-defined bindings.

Siehe auchSee Also

Verwenden von Bindungen, um Dienste und Clients zu konfigurierenUsing Bindings to Configure Services and Clients