Tutorial: Erstellen eines Windows Communication Foundation-Clients
In diesem Tutorial wird die vierte von fünf Aufgaben beschrieben, die zum Erstellen einer einfachen WCF-Anwendung (Windows Communication Foundation) erforderlich sind. Eine Übersicht über die Tutorials finden Sie unter Tutorial: Get started with Windows Communication Foundation applications (Tutorial: Erste Schritte mit Windows Communication Foundation-Anwendungen).
Die nächste Aufgabe zum Erstellen einer WCF-Anwendung besteht darin, einen Client durch Abrufen von Metadaten aus einem WCF-Dienst zu erstellen. Sie verwenden Visual Studio, um einen Dienstverweis hinzuzufügen, der die Metadaten vom MEX-Endpunkt des Diensts abruft. Visual Studio generiert dann eine verwaltete Quellcodedatei für einen Clientproxy in der von Ihnen gewählten Sprache. Außerdem wird eine Clientkonfigurationsdatei (App.config) erstellt. Mit dieser Datei kann die Clientanwendung an einem Endpunkt eine Verbindung mit dem Dienst herstellen.
Hinweis
Wenn Sie einen WCF-Dienst aus einem Klassenbibliotheksprojekt in Visual Studio aufrufen, verwenden Sie die Funktion Dienstverweis hinzufügen, um automatisch einen Proxy und eine zugeordnete Konfigurationsdatei zu generieren. Da Klassenbibliotheksprojekte diese Konfigurationsdatei jedoch nicht verwenden, müssen Sie die Einstellungen in der generierten Konfigurationsdatei in die Datei App.config für die ausführbare Datei einfügen, die die Klassenbibliothek aufruft.
Hinweis
Alternativ können Sie das ServiceModel Metadata Utility-Tool anstelle von Visual Studio verwenden, um die Proxyklasse und die Konfigurationsdatei zu generieren.
Die Clientanwendung verwendet die generierte Proxyklasse, um mit dem Dienst zu kommunizieren. Dieses Verfahren wird unter Tutorial: Use a Windows Communication Foundation client (Tutorial: Verwenden eines Windows Communication Foundation-Clients) beschrieben.
In diesem Tutorial lernen Sie Folgendes:
- Erstellen und Konfigurieren eines Konsolen-App-Projekts für den WCF-Client
- Hinzufügen eines Dienstverweises auf den WCF-Dienst, um die Proxyklasse und die Konfigurationsdateien zu generieren
Erstellen eines Windows Communication Foundation-Clients
Erstellen Sie ein Konsolen-App-Projekt in Visual Studio:
Wählen Sie im Menü Datei die Option Öffnen>Projekt/Projektmappe aus, und navigieren Sie zur zuvor erstellten Projektmappe GettingStarted (GettingStarted.sln). Klicken Sie auf Öffnen.
Wählen Sie im Menü Ansicht die Option Projektmappen-Explorer aus.
Wählen Sie im Fenster Projektmappen-Explorer die Projektmappe GettingStarted (oberster Knoten) und dann im Kontextmenü Hinzufügen>Neues Projekt aus.
Wählen Sie im Fenster Neues Projekt hinzufügen auf der linken Seite unter Visual C# oder Visual Basic die Kategorie Windows Desktop aus.
Wählen Sie die Vorlage Konsolen-App (.NET Framework) aus, und geben Sie GetStartedClient unter Name ein. Klicken Sie auf OK.
Fügen Sie im Projekt GettingStartedClient der Assembly System.ServiceModel einen Verweis hinzu:
Wählen Sie im Fenster Projektmappen-Explorer unter dem Projekt GettingStartedClient den Ordner Verweise und dann im Kontextmenü Verweis hinzufügen aus.
Wählen Sie im Fenster Verweis hinzufügen unter Assemblys auf der linken Seite des Fensters die Option Framework aus.
Suchen Sie System.ServiceModel, und wählen Sie die Option aus. Wählen Sie dann OK aus.
Speichern Sie die Lösung, indem Sie Datei>Alle speichern auswählen.
Fügen Sie dem Rechnerdienst einen Dienstverweis hinzu:
Wählen Sie im Fenster Projektmappen-Explorer unter dem Projekt GettingStartedClient den Ordner Verweise und dann im Kontextmenü Dienstverweis hinzufügen aus.
Wählen Sie im Fenster Dienstverweis hinzufügen die Option Ermitteln aus.
Der CalculatorService-Dienst wird gestartet, und Visual Studio zeigt ihn im Feld Dienste an.
Wählen Sie CalculatorService aus, um den Eintrag zu erweitern und die vom Dienst implementierten Dienstverträge anzuzeigen. Behalten Sie den Standardwert für Namespace bei, und wählen Sie OK aus.
Visual Studio fügt im Projekt GettingStartedClient unter dem Ordner Verbundene Dienste ein neues Element hinzu.
ServiceModel Metadata Utility-Tool
Die folgenden Beispiele zeigen, wie Sie optional das ServiceModel Metadata Utility-Tool (Svcutil.exe) verwenden, um die Proxyklassendatei zu generieren. Dieses Tool generiert die Proxyklassendatei und die Datei App.config. Die folgenden Beispiele zeigen, wie Sie den Proxy in C# bzw. Visual Basic generieren:
svcutil.exe /language:cs /out:generatedProxy.cs /config:app.config http://localhost:8000/GettingStarted/CalculatorService
svcutil.exe /language:vb /out:generatedProxy.vb /config:app.config http://localhost:8000/GettingStarted/CalculatorService
Clientkonfigurationsdatei
Nachdem Sie den Client erstellt haben, erstellt Visual Studio die Konfigurationsdatei App.config im Projekt GettingStartedClient-Projekt, die dem folgenden Beispiel ähneln sollte:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<!-- specifies the version of WCF to use-->
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<system.serviceModel>
<bindings>
<!-- Uses wsHttpBinding-->
<wsHttpBinding>
<binding name="WSHttpBinding_ICalculator" />
</wsHttpBinding>
</bindings>
<client>
<!-- specifies the endpoint to use when calling the service -->
<endpoint address="http://localhost:8000/GettingStarted/CalculatorService"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ICalculator"
contract="ServiceReference1.ICalculator" name="WSHttpBinding_ICalculator">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</client>
</system.serviceModel>
</configuration>
Beachten Sie im Abschnitt <system.serviceModel> das Element <endpoint>. Das Element <endpoint> definiert wie folgt den Endpunkt, den der Client für den Zugriff auf den Dienst verwendet:
- Adresse:
http://localhost:8000/GettingStarted/CalculatorService
. Die Adresse des Endpunkts. - Dienstvertrag:
ServiceReference1.ICalculator
. Der Dienstvertrag behandelt die Kommunikation zwischen dem WCF-Client und dem Dienst. Visual Studio hat diesen Vertrag generiert, als Sie die Funktion Dienstverweis hinzufügen verwendet haben. Es handelt sich eigentlich um eine Kopie des Vertrags, den Sie im GettingStartedLib-Projekt definiert haben. - Bindung: WSHttpBinding. Die Bindung gibt HTTP als Transport, interoperable Sicherheit und weitere Einzelheiten der Konfiguration an.
Nächste Schritte
In diesem Tutorial haben Sie Folgendes gelernt:
- Erstellen und Konfigurieren eines Konsolen-App-Projekts für den WCF-Client
- Hinzufügen eines Dienstverweises auf den WCF-Dienst, um die Proxyklasse und die Konfigurationsdateien für die Clientanwendung zu generieren
Fahren Sie mit dem nächsten Tutorial fort, um zu erfahren, wie Sie den generierten Client verwenden:
Tutorial: Use a WCF client (Tutorial: Verwenden eines Windows Communication Foundation-Clients)