Freigeben über


Endpunkte: Adressen, Bindungen und Verträge

Die gesamte Kommunikation mit einem WCF-Dienst (Windows Communication Foundation) erfolgt über die Endpunkte des Diensts. Endpunkte ermöglichen Clients Zugriff auf die von einem WCF-Dienst gebotene Funktionalität.

Jeder Endpunkt verfügt über vier Eigenschaften:

  • Eine Adresse, die angibt, wo der Endpunkt zu finden ist.

  • Eine Bindung, die angibt, wie ein Client mit dem Endpunkt kommunizieren kann.

  • Ein Vertrag, der die verfügbaren Vorgänge identifiziert.

  • Eine Gruppe von Verhaltensweisen, die lokale Implementierungsdetails des Endpunkts angeben.

In diesem Thema wird diese Endpunktstruktur erläutert, und es wird erklärt, wie sie im WCF-Objektmodell dargestellt wird.

Die Struktur eines Endpunkts

Jeder Endpunkt besteht aus Folgendem:

  • Adresse: Die Adresse gewährleistet eine eindeutige Identifizierung des Endpunkts und teilt potenziellen Consumern des Diensts den Standort des Diensts mit. Sie wird im WCF-Objektmodell durch die EndpointAddress-Klasse dargestellt. Eine EndpointAddress-Klasse enthält:

    • Eine Uri-Eigenschaft, die die Adresse des Diensts darstellt.

    • Eine Identity-Eigenschaft, die die Sicherheits-ID des Diensts und eine Auflistung optionaler Nachrichtenheader darstellt. Die optionalen Nachrichtenheader werden verwendet, um zusätzliche und ausführlichere Adressinformationen bereitzustellen, um den Endpunkt zu identifizieren oder damit zu interagieren.

    Weitere Informationen finden Sie unter Angeben einer Endpunktadresse.

  • Bindung: Die Bindung gibt an, wie eine Kommunikation mit dem Endpunkt stattfindet. Dies schließt Folgendes ein:

    • Das Transportprotokoll, das verwendet werden soll (z. B. TCP oder HTTP).

    • Die Codierung, die für die Nachrichten verwendet werden soll (z. B. Text oder binär).

    • Die erforderlichen Sicherheitsanforderungen (z. B. SSL- oder SOAP-Nachrichtensicherheit).

    Weitere Informationen finden Sie unter Übersicht über WCF-Bindungen. Eine Bindung wird im WCF-Objektmodell durch die abstrakte Basisklasse Binding dargestellt. Für die meisten Szenarien können Benutzer eine der vom System bereitgestellten Bindungen verwenden. Weitere Informationen finden Sie unter Vom System bereitgestellte Bindungen.

  • Verträge: Der Dienstvertrag zeigt, welche Funktionen der Endpunkt dem Client zur Verfügung stellt. Ein Vertrag gibt Folgendes an:

    • Welche Vorgänge von einem Client aufgerufen werden können.

    • Die Form der Nachricht.

    • Der Typ der Eingabeparameter oder Daten, die zum Aufrufen des Vorgangs erforderlich sind.

    • Den Typ der Verarbeitung oder der Antwortnachricht, den der Client erwarten kann.

    Weitere Informationen zum Definieren eines Vertrags finden Sie unter Entwerfen von Dienstverträgen.

  • Verhaltensweisen: Sie können das lokale Verhalten des Dienstendpunkts mithilfe von Endpunktverhaltensweisen anpassen. Endpunktverhalten erreichen dies, indem sie an der Erstellung einer WCF-Runtime teilnehmen. Ein Beispiel für ein Endpunktverhalten ist die ListenUri-Eigenschaft, mit der Sie eine andere Listeningadresse als die SOAP- oder die WSDL-Adresse (WSDL = Web Services Description Language) angeben können. Weitere Informationen finden Sie unter ClientViaBehavior.

Definieren von Endpunkten

Sie können den Endpunkt für einen Dienst entweder verbindlich durch Verwenden von Code oder deklarativ durch Konfiguration angeben. Weitere Informationen finden Sie unter Vorgehensweise: Erstellen eines Dienstendpunkts in der Konfiguration und Vorgehensweise: Erstellen eines Dienstendpunkts im Code.

In diesem Abschnitt

In diesem Abschnitt wird der Zweck von Bindungen, Endpunkten und Adressen erläutert. Darüber hinaus wird gezeigt, wie Sie eine Bindung und einen Endpunkt konfigurieren und wie Sie das ClientVia-Verhalten und die ListenUri-Eigenschaft verwenden.

Adresses
Beschreibt, wie Endpunkte in WCF adressiert werden.

Bindungen
Beschreibt, wie mit Bindungen Transport, Codierung und Protokolldetails angegeben werden, die für die Kommunikation zwischen Clients und Diensten erforderlich sind.

Verträge
Beschreibt, wie Verträge die Methoden eines Diensts definieren.

Vorgehensweise: Erstellen eines Dienstendpunkts in einer Konfiguration
Beschreibt, wie Sie einen Dienstendpunkt in einer Konfiguration erstellen.

Vorgehensweise: Erstellen eines Dienstendpunkts im Code
Beschreibt, wie Sie einen Dienstendpunkt im Code erstellen.

Vorgehensweise: Verwenden von „Svcutil.exe“ zum Überprüfen von kompiliertem Dienstcode
Beschreibt, wie Fehler in Dienstimplementierungen und -konfigurationen erkannt werden, ohne den Dienst mit dem Tool ServiceModel Metadata Utility (Svcutil.exe) zu hosten.

Siehe auch