Samouczek: tworzenie klienta Windows Communication Foundation

W tym samouczku opisano czwarte z pięciu zadań wymaganych do utworzenia podstawowej Windows Communication Foundation (WCF). Aby uzyskać omówienie samouczków, zobacz Tutorial: Get started with Windows Communication Foundation applications (Samouczek:wprowadzenie do aplikacji Windows Communication Foundation).

Następnym zadaniem tworzenia aplikacji WCF jest utworzenie klienta przez pobieranie metadanych z usługi WCF. Użyj Visual Studio, aby dodać odwołanie do usługi, które pobiera metadane z punktu końcowego MEX usługi. Visual Studio następnie generuje plik zarządzanego 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 wygenerowanym pliku konfiguracji do pliku App.config pliku wykonywalnego, który wywołuje bibliotekę klas.

Uwaga

Alternatywnie użyj narzędzia ServiceModel Metadata Utility zamiast Visual Studio do wygenerowania klasy serwera proxy i pliku konfiguracji.

Aplikacja kliency używa wygenerowanej klasy serwera proxy do komunikowania się z usługą. Ta procedura jest opisana w samouczku: Korzystanie z klientaprogramu .

Ten samouczek zawiera informacje na temat wykonywania następujących czynności:

  • Utwórz i skonfiguruj projekt aplikacji konsolowej dla klienta programu WCF.
  • Dodaj odwołanie do usługi WCF, aby wygenerować klasę serwera proxy i pliki konfiguracji.

Tworzenie klienta Windows Communication Foundation

  1. Utwórz projekt aplikacji konsolowej w Visual Studio:

    1. W menu Plik wybierz pozycję Otwórz Project/Rozwiązanie i przejdź do utworzonego wcześniej rozwiązania > GettingStarted (GettingStarted.sln). Wybierz pozycję Otwórz.

    2. W menu Widok wybierz pozycję Eksplorator rozwiązań.

    3. W oknie Eksplorator rozwiązań wybierz rozwiązanie GettingStarted (górny węzeł), a następnie wybierz pozycję Dodaj Project > z menu skrótów.

    4. W oknie Dodawanie Project aplikacji po lewej stronie wybierz kategorię Windows Desktop w obszarze Visual C# lub Visual Basic.

    5. Wybierz szablon Aplikacja konsolowa (.NET Framework) i wprowadź wartość GettingStartedClient w nazwie . Wybierz przycisk OK.

  2. Dodaj odwołanie w projekcie GettingStartedClient do System.ServiceModel zestawu:

    1. W Eksplorator rozwiązań wybierz folder References w projekcie GettingStartedClient, a następnie wybierz pozycję Dodaj odwołanie z menu skrótów.

    2. W oknie Dodawanie odwołania w obszarze Zestawy po lewej stronie okna wybierz pozycję Framework.

    3. Znajdź i wybierz pozycję System.ServiceModel, a następnie wybierz przycisk OK.

    4. Zapisz rozwiązanie, wybierając pozycję Plik > Zapisz wszystko.

  3. Dodaj odwołanie do usługi kalkulatora:

    1. W 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.

    2. W oknie Dodaj odwołanie do usługi wybierz pozycję Odnajdz.

      Usługa CalculatorService zostanie Visual Studio wyświetlana w polu Usługi.

    3. Wybierz pozycję CalculatorService, aby ją rozwinąć i wyświetlić kontrakty usług zaimplementowane przez usługę. Pozostaw domyślną przestrzeń nazw i wybierz przycisk OK.

      Visual Studio dodaje nowy element w folderze Connected Services w projekcie GettingStartedClient.

Narzędzie ServiceModel Metadata Utility

Poniższe przykłady pokazują, jak opcjonalnie użyć narzędzia ServiceModel Metadata Utility (Svcutil.exe) do wygenerowania pliku klasy serwera proxy. To narzędzie generuje plik klasy serwera proxy i plikApp.config proxy. Poniższe przykłady pokazują, jak wygenerować serwer proxy w języku C# i Visual Basic, odpowiednio:

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 plik konfiguracji App.configw 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 <endpoint> . 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 i usługą. Visual Studio ten kontrakt został wygenerowany podczas korzystania z jego Dodaj odwołanie do usługi funkcji. 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 niniejszym samouczku zawarto informacje na temat wykonywania następujących czynności:

  • Utwórz i skonfiguruj projekt aplikacji konsolowej dla klienta programu WCF.
  • Dodaj odwołanie do usługi WCF, aby wygenerować klasę serwera proxy i pliki konfiguracji dla aplikacji klienckiej.

Aby dowiedzieć się, jak używać wygenerowanego klienta, należy przejść do następnego samouczka.