Руководство по созданию клиента Windows Communication Foundation

В этом руководстве описывается четвертая из пяти задач, необходимых для создания базового приложения Windows Communication Foundation (WCF). Общие сведения о руководствах см. в руководстве по началу работы с приложениями Windows Communication Foundation.

Следующая задача для создания приложения WCF — создать клиент, извлекая метаданные из службы WCF. Вы используете Visual Studio для добавления ссылки на службу, которая получает метаданные из конечной точки MEX службы. Затем Visual Studio создает файл управляемого исходного кода для прокси-сервера клиента на выбранном вами языке. Он также создает файл конфигурации клиента (App.config). Этот файл позволяет клиентскому приложению подключаться к службе в конечной точке.

Примечание.

При вызове службы WCF из проекта библиотеки классов в Visual Studio используйте функцию добавления ссылки на службу для автоматического создания прокси-сервера и связанного файла конфигурации. Тем не менее, так как проекты библиотеки классов не используют этот файл конфигурации, необходимо добавить параметры в созданный файл конфигурации в файл конфигурации App.config для исполняемого файла, вызывающего библиотеку классов.

Примечание.

В качестве альтернативы используйте средство служебной программы метаданных ServiceModel вместо Visual Studio для создания прокси-класса и файла конфигурации.

Клиентское приложение использует созданный прокси-класс для взаимодействия со службой. Эта процедура описана в руководстве. Использование клиента.

В этом руководстве описано следующее:

  • Создайте и настройте проект консольного приложения для клиента WCF.
  • Добавьте ссылку на службу WCF для создания файлов прокси-сервера и файлов конфигурации.

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

  1. Создайте проект консольного приложения в Visual Studio:

    1. В меню "Файл" выберите "Открыть>проект или решение" и перейдите к ранее созданному решению GettingStarted (GettingStarted.sln). Выберите Открыть.

    2. В меню "Вид" выберите Обозреватель решений.

    3. В окне Обозреватель решений выберите решение GettingStarted (верхний узел), а затем выберите "Добавить>новый проект" в контекстном меню.

    4. В окне "Добавление нового проекта" в левой части выберите категорию "Рабочий стол Windows" в разделе Visual C# или Visual Basic.

    5. Выберите шаблон консольного приложения (платформа .NET Framework) и введите Метод GettingStartedClient для имени. Нажмите ОК.

  2. Добавьте ссылку в проект GettingStartedClient в сборкуSystem.ServiceModel:

    1. В окне Обозреватель решений выберите папку "Ссылки" в проекте GettingStartedClient и выберите "Добавить ссылку" в контекстном меню.

    2. В окне "Добавить ссылку" в разделе "Сборки" в левой части окна выберите "Платформа".

    3. Найдите и выберите System.ServiceModel и нажмите кнопку "ОК".

    4. Сохраните решение, нажав кнопку "Сохранить все файлы>".

  3. Добавьте ссылку на службу калькулятора:

    1. В окне Обозреватель решений выберите папку "Ссылки" в проекте GettingStartedClient, а затем выберите "Добавить ссылку на службу" в контекстном меню.

    2. В окне "Добавить ссылку на службу" нажмите кнопку "Обнаружение".

      Служба CalculatorService запускается и Visual Studio отображает ее в поле "Службы ".

    3. Выберите CalculatorService , чтобы развернуть его и отобразить контракты служб, реализованные службой. Оставьте пространство имен по умолчанию и нажмите кнопку "ОК".

      Visual Studio добавляет новый элемент в папку Подключение ed Services в проекте GettingStartedClient.

Средство служебной программы метаданных ServiceModel

В следующих примерах показано, как при необходимости использовать средство служебной программы метаданных ServiceModel (Svcutil.exe) для создания файла класса прокси. Это средство создает файл класса прокси и файл конфигурации App.config . В следующих примерах показано, как создать прокси-сервер в C# и 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

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

После создания клиента Visual Studio создает файл конфигурации App.config в проекте GettingStartedClient , который должен быть похож на следующий пример:

    <?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 обратите внимание на элемент конечной <<точки>.> Элемент <конечной точки> определяет конечную точку, которую клиент использует для доступа к службе следующим образом:

  • Адрес: http://localhost:8000/GettingStarted/CalculatorService. Адрес конечной точки.
  • Контракт службы: ServiceReference1.ICalculator. Контракт службы обрабатывает обмен данными между клиентом WCF и службой. Visual Studio создал этот контракт при использовании функции Add Service Reference . Это по сути копия контракта, определенного в проекте GetStartedLib.
  • Привязка: WSHttpBinding. Привязка задает HTTP в качестве транспорта, уровень безопасности и другие данные конфигурации.

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

Из этого руководства вы узнали, как:

  • Создайте и настройте проект консольного приложения для клиента WCF.
  • Добавьте ссылку на службу WCF, чтобы создать прокси-класс и файлы конфигурации для клиентского приложения.

Перейдите к следующему руководству, чтобы узнать, как использовать созданный клиент.