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

Конфигурацию клиента Windows Communication Foundation (WCF) можно использовать для указания адреса, привязки, поведения и контракта, свойств ABC конечной точки клиента, которые клиенты используют для подключения к конечным точкам службы. Клиентский <элемент имеет элемент конечной <точки, атрибуты которого используются для настройки конечных точек.>> Эти атрибуты рассматриваются в разделе "Настройка конечных точек".

Элемент <конечной> точки также содержит< элемент метаданных, используемый для указания параметров для импорта и экспорта метаданных>, элемента заголовков>, <содержащего коллекцию пользовательских заголовков адресов, и< элемент удостоверения>, который обеспечивает проверку подлинности конечной точки другими конечными точками, обменивающимися сообщениями с ним. Заголовки <>и <элементы удостоверения> являются частью EndpointAddress и рассматриваются в статье "Адреса". Ссылки на разделы, объясняющие использование расширений метаданных, приведены в разделе "Настройка метаданных ".

Настройка конечных точек

Конфигурация клиента предназначена для указания одной или нескольких конечных точек, каждая из которых имеет собственное имя, адрес и контракт, при каждом обращении к <элементам привязки> и <поведения> в конфигурации клиента, которые будут использоваться для настройки этой конечной точки. Файл конфигурации клиента должен называться App.config, так как это имя, которое ожидает среда выполнения WCF. В следующем примере показан файл конфигурации клиента.

<?xml version="1.0" encoding="utf-8"?>  
<configuration>  
  <system.serviceModel>  
        <client>  
          <endpoint  
            name="endpoint1"  
            address="http://localhost/ServiceModelSamples/service.svc"  
            binding="wsHttpBinding"  
            bindingConfiguration="WSHttpBinding_IHello"  
            behaviorConfiguration="IHello_Behavior"  
            contract="IHello" >  
  
            <metadata>  
              <wsdlImporters>  
                <extension  
                  type="Microsoft.ServiceModel.Samples.WsdlDocumentationImporter, WsdlDocumentation"/>  
              </wsdlImporters>  
            </metadata>  
  
            <identity>  
              <servicePrincipalName value="host/localhost" />  
            </identity>  
          </endpoint>  
            <!-- Add another endpoint by adding another <endpoint> element. -->
          <endpoint  
            name="endpoint2">  
           //Configure another endpoint here.  
          </endpoint>  
        </client>  
  
<!-- The bindings section references by the bindingConfiguration endpoint attribute.   -->
    <bindings>  
      <wsHttpBinding>  
        <binding name="WSHttpBinding_IHello"
                 bypassProxyOnLocal="false"
                 hostNameComparisonMode="StrongWildcard">  
          <readerQuotas maxDepth="32"/>  
          <reliableSession ordered="true"
                           enabled="false" />  
          <security mode="Message">  
           <!-- Security settings go here.   -->
          </security>  
        </binding>  
        <binding name="Another Binding"  
          <!-- Configure this binding here. -->  
        </binding>  
          </wsHttpBinding>  
     </bindings>  
  
<!-- The behavior section references by the behaviorConfiguration endpoint attribute.   -->
        <behaviors>  
            <endpointBehaviors>  
                <behavior name=" IHello_Behavior ">  
                    <clientVia />  
                </behavior>  
            </endpointBehaviors>  
        </behaviors>  
  
    </system.serviceModel>  
</configuration>  

Необязательный атрибут name уникальным образом идентифицирует конечную точку для данного контракта. Он используется методом ChannelFactory<TChannel> или ClientBase<TChannel> для задания целевой конечной точки в конфигурации клиента, которая должна быть загружена при создании канала к службе. Предусмотрено подстановочное имя "*" конечной точки в конфигурации, которое указывает методу ApplyConfiguration, что следует загрузить любую конфигурацию конечной точки из файла, при условии, что имеется ровно одна конфигурация, а в противном случае создать исключение. Если этот атрибут опущен, соответствующая конечная точка используется как конечная точка по умолчанию, связанная с заданным типом контракта. Значением по умолчанию для атрибута name является пустая строка, соответствие для которой проверяется так же, как и для любого другого имени.

С каждой конечной точкой связан адрес, который используется для поиска и идентификации этой конечной точки. Атрибут address может использоваться для указания URL-адреса, задающего расположение конечной точки. Однако адрес для конечной точки службы может также быть задан в коде путем создания универсального кода ресурса (URI), и он добавляется в ServiceHost с помощью одного из методов AddServiceEndpoint. Дополнительные сведения см. в разделе "Адреса". Как показывает введение, <заголовки> и< элементы удостоверений> являются частью EndpointAddress и также рассматриваются в разделе "Адреса".

Атрибут binding задает тип привязки, использование которого ожидается в конечной точке при подключении к службе. Для того чтобы на тип можно было ссылаться, он должен иметь зарегистрированный раздел конфигурации. В предыдущем примере это раздел wsHttpBinding>, указывающий, что конечная точка использует объект WSHttpBinding.< Однако могут существовать несколько привязок указанного типа, которые могут использоваться конечной точкой. Каждый из них имеет собственный <элемент привязки> в элементе типа (привязка). Для различения привязок одного типа служит атрибут bindingconfiguration. Его значение соответствует name атрибуту< элемента привязки>. Дополнительные сведения о настройке привязки клиента с помощью конфигурации см. в разделе "Практическое руководство. Указание привязки клиента в конфигурации".

Атрибут behaviorConfiguration используется для указания поведения> конечной точкиBehaviors>, используемой <<конечной точкой. Его значение соответствует name атрибуту< элемента поведения>. Пример использования конфигурации для указания поведения клиента см. в разделе "Настройка поведения клиента".

Атрибут contract задает контракт, который предоставляет данная конечная точка. Это значение соответствует свойству ConfigurationName атрибута ServiceContractAttribute. Значение по умолчанию - это полное имя типа класса, реализующего службу.

Настройка метаданных

Элемент <метаданных> используется для указания параметров, используемых для регистрации расширений импорта метаданных. Дополнительные сведения о расширении системы метаданных см. в разделе "Расширение системы метаданных".

См. также