Udostępnij za pośrednictwem


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

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

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

    2. Z 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>nowy projekt z menu skrótów.

    4. W oknie Dodawanie nowego projektu po lewej stronie wybierz kategorię Pulpit systemu Windows w obszarze Visual C# lub Visual Basic.

    5. Wybierz szablon Aplikacja konsolowa (.NET Framework), a następnie wprowadź ciąg GettingStartedClient jako nazwę. Wybierz przycisk OK.

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

    1. W oknie 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ę Struktura.

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

    2. 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 .

    3. 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.