Учебник. Создание клиента Windows Communication FoundationTutorial: Create a Windows Communication Foundation client

В данном учебнике четвертый из пяти шагов, необходимых для создания базового приложения Windows Communication Foundation (WCF).This tutorial describes the fourth of five tasks required to create a basic Windows Communication Foundation (WCF) application. Обзор руководства, см. в разделе руководства: Начало работы с приложениями Windows Communication Foundation.For an overview of the tutorials, see Tutorial: Get started with Windows Communication Foundation applications.

Следующая задача по созданию приложения WCF — для создания клиента путем извлечения метаданных из службы WCF.The next task for creating a WCF application is to create a client by retrieving metadata from a WCF service. Используйте Visual Studio для добавления ссылки на службу, которая получает метаданные из конечной точки службы обмена Метаданными.You use Visual Studio to add a service reference, which gets the metadata from the service’s MEX endpoint. Затем Visual Studio создает файл управляемого исходного кода для клиентского прокси на языке, который вы выбрали.Visual Studio then generates a managed source code file for a client proxy in the language you've chosen. Он также создает файл конфигурации клиента (App.config).It also creates a client configuration file (App.config). Этот файл позволяет клиентскому приложению подключаться к службе в конечной точке.This file enables the client application to connect to the service at an endpoint.

Примечание

Если вызов службы WCF из проекта библиотеки классов в Visual Studio, используйте Add Service Reference компонентов для автоматического создания прокси-сервера и связанный файл конфигурации.If you call a WCF service from a class library project in Visual Studio, use the Add Service Reference feature to automatically generate a proxy and associated configuration file. Тем не менее, так как библиотеки классов не используют этот файл конфигурации, необходимо добавить параметры в созданный файл конфигурации для App.config файл для исполняемого файла, который вызывает библиотеку классов.However, because class library projects don't use this configuration file, you need to add the settings in the generated configuration file to the App.config file for the executable that calls the class library.

Примечание

В качестве альтернативы использовать средство ServiceModel Metadata Utility вместо Visual Studio для создания файла класса и конфигурации прокси-сервера.As an alternative, use the ServiceModel Metadata Utility tool instead of Visual Studio to generate the proxy class and configuration file.

Клиентское приложение использует созданный прокси-класс для взаимодействия со службой.The client application uses the generated proxy class to communicate with the service. Эта процедура описана в руководства: Использование клиента.This procedure is described in Tutorial: Use a client.

В этом руководстве вы узнаете, как:In this tutorial, you learn how to:

  • Создание и настройка проекта консольного приложения для клиента WCF.Create and configure a console app project for the WCF client.
  • Добавьте ссылку на службу в службу WCF, чтобы создать файлы класса и конфигурации прокси-сервера.Add a service reference to the WCF service to generate the proxy class and configuration files.

Создание клиента Windows Communication FoundationCreate a Windows Communication Foundation client

  1. Создание проекта консольного приложения в Visual Studio:Create a console app project in Visual Studio:

    1. Из файл меню, выберите откройте > решение или проект и перейдите к GettingStarted решения вы ранее созданный (GettingStarted.sln).From the File menu, select Open > Project/Solution and browse to the GettingStarted solution you previously created (GettingStarted.sln). Нажмите кнопку Открыть.Select Open.

    2. Из представление меню, выберите обозревателе решений.From the View menu, select Solution Explorer.

    3. В обозревателе решений выберите GettingStarted решение (верхний узел), а затем выберите добавить > новый проект в контекстном меню.In the Solution Explorer window, select the GettingStarted solution (top node), and then select Add > New Project from the shortcut menu.

    4. В Добавление нового проекта окно, в левой части окна выберите Windows Desktop категорию Visual C# или Visual Basic.In the Add New Project window, on the left side, select the Windows Desktop category under Visual C# or Visual Basic.

    5. Выберите консольное приложение (.NET Framework) шаблона и введите GettingStartedClient для имя.Select the Console App (.NET Framework) template, and enter GettingStartedClient for the Name. Нажмите кнопку ОК.Select OK.

  2. Добавьте ссылку в GettingStartedClient проект System.ServiceModel сборки:Add a reference in the GettingStartedClient project to the System.ServiceModel assembly:

    1. В обозревателе решений выберите ссылки папке GettingStartedClient проекта, а затем выберите добавить ссылку на в контекстном меню.In the Solution Explorer window, select the References folder under the GettingStartedClient project, and then select Add Reference from the shortcut menu.

    2. В добавить ссылку окна в разделе сборки в левой части окна выберите Framework.In the Add Reference window, under Assemblies on the left side of the window, select Framework.

    3. Найдите и выберите System.ServiceModel, а затем выберите ОК.Find and select System.ServiceModel, and then choose OK.

    4. Сохраните решение, выбрав файл > сохранить все.Save the solution by selecting File > Save All.

  3. Добавьте ссылку на службу для службы калькулятора:Add a service reference to the calculator service:

    1. В обозревателе решений выберите ссылки папке GettingStartedClient проекта, а затем выберите Add Service Reference в контекстном меню.In the Solution Explorer window, select the References folder under the GettingStartedClient project, and then select Add Service Reference from the shortcut menu.

    2. В Add Service Reference выберите Discover.In the Add Service Reference window, select Discover.

      Запускает службу CalculatorService и Visual Studio отображает его в служб поле.The CalculatorService service starts and Visual Studio displays it in the Services box.

    3. Выберите CalculatorService чтобы развернуть ее и отобразить контрактов службы, реализованном в службе.Select CalculatorService to expand it and display the service contracts implemented by the service. Оставьте значение по умолчанию пространства имен и выберите ОК.Leave the default Namespace and choose OK.

      Visual Studio добавляет новый элемент в разделе подключенных служб папку в GettingStartedClient проекта.Visual Studio adds a new item under the Connected Services folder in the GettingStartedClient project.

Средство ServiceModel Metadata UtilityServiceModel Metadata Utility tool

Следующие примеры показывают, как при необходимости использовать ServiceModel Metadata Utility tool (Svcutil.exe) для создания файла класса прокси-сервера.The following examples show how to optionally use the ServiceModel Metadata Utility tool (Svcutil.exe) to generate the proxy class file. Это средство создает файл класса прокси-сервера и App.config файл.This tool generates the proxy class file and the App.config file. Следующие примеры показывают, как для создания прокси-сервера в C# и Visual Basic, соответственно:The following examples show how to generate the proxy in C# and Visual Basic, respectively:

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

Файл конфигурации клиентаClient configuration file

После создания клиента, Visual Studio создает App.config файл конфигурации в GettingStartedClient проект, который должен выглядеть следующим образом:After you've created the client, Visual Studio creates the App.config configuration file in the GettingStartedClient project, which should be similar to the following example:

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

В разделе <system.serviceModel > разделе, обратите внимание, что <конечной точки > элемент.Under the <system.serviceModel> section, notice the <endpoint> element. <Конечной точки> элемент определяет конечную точку, которую клиент использует для доступа к службе, следующим образом:The <endpoint> element defines the endpoint that the client uses to access the service as follows:

  • Адрес: http://localhost:8000/GettingStarted/CalculatorService.Address: http://localhost:8000/GettingStarted/CalculatorService. Адрес конечной точки.The address of the endpoint.
  • Контракт службы: ServiceReference1.ICalculator.Service contract: ServiceReference1.ICalculator. Контракт службы обеспечивает взаимодействие между клиентом WCF и службой.The service contract handles communication between the WCF client and the service. Visual Studio создается этот контракт, когда вы использовали его Add Service Reference функции.Visual Studio generated this contract when you used its Add Service Reference function. Это по сути копию контракта, которое было определено в проекте GettingStartedLib.It's essentially a copy of the contract that you defined in the GettingStartedLib project.
  • Привязки: WSHttpBinding.Binding: WSHttpBinding. Привязка задает HTTP в качестве транспорта, безопасности с возможностью взаимодействия и другие сведения о конфигурации.The binding specifies HTTP as the transport, interoperable security, and other configuration details.

Следующие шагиNext steps

В этом руководстве вы узнали, как:In this tutorial, you learned how to:

  • Создание и настройка проекта консольного приложения для клиента WCF.Create and configure a console app project for the WCF client.
  • Добавьте ссылку на службу в службу WCF, чтобы создать файлы класса и конфигурации прокси-сервера для клиентского приложения.Add a service reference to the WCF service to generate the proxy class and configuration files for the client application.

Перейдите к следующему руководству, чтобы сведения об использовании созданного клиента.Advance to the next tutorial to learn how to use the generated client.