Samouczek: tworzenie klienta programu Windows Communication Foundation
W tym samouczku opisano czwarty z pięciu zadań wymaganych do utworzenia podstawowej aplikacji windows Communication Foundation (WCF). Aby zapoznać się z omówieniem samouczków, zobacz Samouczek: rozpoczynanie pracy z aplikacjami Windows Communication Foundation.
Następnym zadaniem tworzenia aplikacji WCF jest utworzenie klienta przez pobranie metadanych z usługi WCF. Program Visual Studio służy do dodawania odwołania do usługi, która pobiera metadane z punktu końcowego MEX usługi. Następnie program Visual Studio generuje zarządzany plik kodu źródłowego dla serwera proxy klienta w wybranym języku. Tworzy również plik konfiguracji klienta (App.config). Ten plik umożliwia aplikacji klienckiej łączenie się z usługą w punkcie końcowym.
Uwaga
Jeśli wywołasz usługę WCF z projektu biblioteki klas w programie Visual Studio, użyj funkcji Dodaj odwołanie do usługi , aby automatycznie wygenerować serwer proxy i skojarzony plik konfiguracji. Jednak ponieważ projekty biblioteki klas nie używają tego pliku konfiguracji, należy dodać ustawienia w wygenerowany plik konfiguracji do pliku App.config pliku wykonywalnego, który wywołuje bibliotekę klas.
Uwaga
Alternatywnie użyj narzędzia ServiceModel Metadata Utility zamiast programu Visual Studio, aby wygenerować klasę serwera proxy i plik konfiguracji.
Aplikacja kliencka używa wygenerowanej klasy serwera proxy do komunikowania się z usługą. Ta procedura jest opisana w artykule Samouczek: używanie klienta.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Utwórz i skonfiguruj projekt aplikacji konsolowej dla klienta WCF.
- Dodaj odwołanie do usługi WCF, aby wygenerować klasy serwera proxy i pliki konfiguracji.
Tworzenie klienta programu Windows Communication Foundation
Utwórz projekt aplikacji konsolowej w programie Visual Studio:
W menu Plik wybierz pozycję Otwórz>projekt/rozwiązanie i przejdź do utworzonego wcześniej rozwiązania GettingStarted (GettingStarted.sln). Wybierz Otwórz.
Z menu Widok wybierz pozycję Eksplorator rozwiązań.
W oknie Eksplorator rozwiązań wybierz rozwiązanie GettingStarted (górny węzeł), a następnie wybierz pozycję Dodaj>nowy projekt z menu skrótów.
W oknie Dodawanie nowego projektu po lewej stronie wybierz kategorię Pulpit systemu Windows w obszarze Visual C# lub Visual Basic.
Wybierz szablon Aplikacja konsolowa (.NET Framework), a następnie wprowadź ciąg GettingStartedClient jako nazwę. Wybierz przycisk OK.
Dodaj odwołanie w projekcie GettingStartedClient do System.ServiceModel zestawu:
W oknie Eksplorator rozwiązań wybierz folder References w projekcie GettingStartedClient, a następnie wybierz pozycję Dodaj odwołanie z menu skrótów.
W oknie Dodawanie odwołania w obszarze Zestawy po lewej stronie okna wybierz pozycję Struktura.
Znajdź i wybierz pozycję System.ServiceModel, a następnie wybierz przycisk OK.
Zapisz rozwiązanie, wybierając pozycję Plik>Zapisz wszystko.
Dodaj odwołanie do usługi kalkulatora:
W oknie Eksplorator rozwiązań wybierz folder References w projekcie GettingStartedClient, a następnie wybierz pozycję Dodaj odwołanie do usługi z menu skrótów.
W oknie Dodawanie odwołania do usługi wybierz pozycję Odnajdź.
Usługa CalculatorService zostanie uruchomiona, a program Visual Studio wyświetli go w polu Usługi .
Wybierz pozycję KalkulatorUsługi , aby ją rozwinąć i wyświetlić kontrakty usług zaimplementowane przez usługę. Pozostaw domyślną przestrzeń nazw i wybierz przycisk OK.
Program Visual Studio dodaje nowy element w folderze Połączenie ed Services w projekcie GettingStartedClient.
Narzędzie ServiceModel Metadata Utility
W poniższych przykładach pokazano, jak opcjonalnie użyć narzędzia ServiceModel Metadata Utility (Svcutil.exe) w celu wygenerowania pliku klasy serwera proxy. To narzędzie generuje plik klasy proxy i plik App.config . W poniższych przykładach pokazano, jak wygenerować serwer proxy odpowiednio w językach C# i Visual Basic:
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
Plik konfiguracji klienta
Po utworzeniu klienta program Visual Studio tworzy plik konfiguracji App.config w projekcie GettingStartedClient , który powinien być podobny do następującego przykładu:
<?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>
W sekcji system.serviceModel> zwróć uwagę na element punktu końcowego><.< Element <punktu końcowego definiuje punkt końcowy> używany przez klienta do uzyskiwania dostępu do usługi w następujący sposób:
- Adres:
http://localhost:8000/GettingStarted/CalculatorService
. Adres punktu końcowego. - Kontrakt usługi:
ServiceReference1.ICalculator
. Kontrakt usługi obsługuje komunikację między klientem WCF a usługą. Program Visual Studio wygenerował ten kontrakt podczas korzystania z funkcji Add Service Reference . Jest to zasadniczo kopia kontraktu zdefiniowanego w projekcie GettingStartedLib. - Powiązanie: WSHttpBinding. Powiązanie określa protokół HTTP jako transport, zabezpieczenia międzyoperacyjne i inne szczegóły konfiguracji.
Następne kroki
W tym samouczku zawarto informacje na temat wykonywania następujących czynności:
- Utwórz i skonfiguruj projekt aplikacji konsolowej dla klienta WCF.
- Dodaj odwołanie do usługi WCF, aby wygenerować pliki klasy serwera proxy i konfiguracji dla aplikacji klienckiej.
Przejdź do następnego samouczka, aby dowiedzieć się, jak używać wygenerowanego klienta.