Поделиться через


Как настроить базовый клиент Windows Communication Foundation

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

В этом разделе описывается добавление в проект клиента файла конфигурации клиента, созданного с использованием Служебное средство ServiceModel Metadata Utility Tool (Svcutil.exe), и объясняется содержимое элементов конфигурации клиента. Настройка клиента состоит из задания конечной точки, которую клиент использует для получения доступа к службе. Конечная точка имеет адрес, привязку и контракт, и при настройке клиента необходимо задать все эти элементы.

Содержимое файлов конфигурации, созданных для клиента, представлено в примере после описания процедуры.

Настройка клиента Windows Communication Foundation

  1. Добавьте файл конфигурации App.config, созданный в предыдущей процедуре, описанной в разделе Как создать клиент Windows Communication Foundation, в проект клиента в Visual Studio. Щелкните правой кнопкой мыши по проекту клиента в Обозревателе решений, выберите Добавить, затем выберите Существующий элемент. Затем выберите файл App.config в каталоге, из которого запускалась программа SvcUtil.exe на предыдущем шаге. (Файл называется App.config, потому что при создании этого файла с помощью средства Svcutil.exe использовался переключатель /config:app.config). Нажмите кнопку ОК. По умолчанию в диалоговом окне Добавление существующего элемента фильтруются все файлы с расширением CONFIG. Для просмотра этих файлов выберите Все файлы (*.*) из раскрывающегося списка в нижнем правом углу диалогового окна Добавить существующий элемент.

  2. Откройте созданный файл конфигурации. Средство Svcutil.exe создает значения для каждого параметра в привязке. В следующем примере приведено представление созданного файла конфигурации. В разделе <system.serviceModel><endpoint> найдите элемент. Следующий файл конфигурации является упрощенной версией созданного файла.

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <system.serviceModel>
        <bindings>
          <wsHttpBinding>
            <binding name="WSHttpBinding_ICalculator">
            </binding>
          </wsHttpBinding>
        </bindings>
        <client>
          <endpoint
               address="https://localhost:8000/ServiceModelSamples/Service/CalculatorService"
               binding="wsHttpBinding"
               bindingConfiguration="WSHttpBinding_ICalculator"
               contract="Microsoft.ServiceModel.Samples.ICalculator"
               name="WSHttpBinding_ICalculator">
          </endpoint>
        </client>
      </system.serviceModel>
    </configuration> 
    

    В этом примере продемонстрирована настройка конечной точки, которую клиент использует для получения доступа к службе, расположенной по следующему адресу: https://localhost:8000/ServiceModelSamples/service

    Элемент конечной точки задает, что для связи используется контракт Microsoft.ServiceModel.Samples.ICalculator, настраиваемый с помощью предоставляемой системой привязки WsHttpBinding. Эта привязка задает HTTP в качестве транспорта, безопасность с возможностью взаимодействия и другие данные конфигурации.

  3. Дополнительные сведения использовании созданного клиента с этой конфигурацией см. раздел Как использовать клиент Windows Communication Foundation.

Пример

В примере показано содержимое файлов конфигурации, созданных для клиента.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.serviceModel>
    <bindings>
      <wsHttpBinding>
        <binding name="WSHttpBinding_ICalculator"     
          closeTimeout="00:01:00"
          openTimeout="00:01:00" 
          receiveTimeout="00:10:00" 
          sendTimeout="00:01:00"
          bypassProxyOnLocal="false" 
          transactionFlow="false"  
          hostNameComparisonMode="StrongWildcard"
          maxBufferPoolSize="524288" 
          maxReceivedMessageSize="65536"
          messageEncoding="Text" 
          textEncoding="utf-8" 
          useDefaultWebProxy="true"
          allowCookies="false">
          <readerQuotas maxDepth="32" 
            maxStringContentLength="8192" 
            maxArrayLength="16384"
            maxBytesPerRead="4096" 
            maxNameTableCharCount="16384" />
          <reliableSession ordered="true" 
            inactivityTimeout="00:10:00"
            enabled="false" />
          <security mode="Message">
            <transport clientCredentialType="Windows" 
              proxyCredentialType="None"
              realm="" />
            <message clientCredentialType="Windows" 
              negotiateServiceCredential="true"
              algorithmSuite="Default" 
              establishSecurityContext="true" />
           </security>
      </binding>
    </wsHttpBinding>
  </bindings>
  <client>
    <endpoint address="https://localhost:8000/ServiceModelSamples/Service/CalculatorService"
      binding="wsHttpBinding" 
      bindingConfiguration="WSHttpBinding_ICalculator"
      contract="ICalculator" 
      name="WSHttpBinding_ICalculator">
        <identity>
          <userPrincipalName value="user@contoso.com" />
        </identity>
      </endpoint>
    </client>
  </system.serviceModel>
</configuration>

Клиент настроен. Перейти к разделу Как использовать клиент Windows Communication Foundation. Сведения по устранению неполадок см. в разделе Устранение неполадок, связанных с учебником по началу работы.

См. также

Задачи

Как создать клиент Windows Communication Foundation
Образец для начала работы
Резидентное размещение

Основные понятия

Использование привязок для настройки служб и клиентов
Служебное средство ServiceModel Metadata Utility Tool (Svcutil.exe)