Настройка клиента
Конфигурацию клиента 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. Значение по умолчанию - это полное имя типа класса, реализующего службу.
Настройка метаданных
Элемент <метаданных> используется для указания параметров, используемых для регистрации расширений импорта метаданных. Дополнительные сведения о расширении системы метаданных см. в разделе "Расширение системы метаданных".