클라이언트 구성
WCF(Windows Communication Foundation) 클라이언트 구성을 사용하여 클라이언트에서 서비스 엔드포인트에 연결하는 데 사용하는 클라이언트 엔드포인트의 “ABC” 속성인 계약, 바인딩 동작 및 주소를 지정할 수 있습니다. <client> 요소에는 해당 특성이 엔드포인트 ABC를 구성하는 데 사용되는 <endpoint> 요소가 있습니다. 이 특성은 엔드포인트 구성 섹션에서 설명합니다.
또한 <endpoint> 요소에는 메타데이터 가져오기 및 내보내기 설정을 지정하는 데 사용되는 <metadata> 요소, 사용자 지정 주소 헤더 컬렉션을 포함하는 <headers> 요소, 메시지를 교환하는 다른 엔드포인트에서 엔드포인트를 인증할 수 있게 해주는 <identity> 요소도 포함되어 있습니다. <headers> 및 <identity> 요소는 EndpointAddress의 일부이며 주소 항목에서 설명합니다. 메타데이터 확장 사용을 설명하는 항목에 대한 링크가 메타데이터 구성 섹션에 제공됩니다.
엔드포인트 구성
클라이언트 구성은 클라이언트가 하나 이상의 엔드포인트를 지정할 수 있도록 디자인되었습니다. 각 엔드포인트는 고유한 이름, 주소 및 계약을 가지며, 클라이언트 구성에서 <bindings> 및 <behaviors> 요소를 참조하여 해당 엔드포인트를 구성하는 데 사용할 수 있습니다. 클라이언트 구성 파일의 이름은 WCF 런타임이 예상하는 이름인 “App.config”로 지정되어야 합니다. 다음 예제에서는 클라이언트 구성 파일을 보여 줍니다.
<?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>가 서비스에 대한 채널을 만들 때 로드해야 하는 대상 엔드포인트를 클라이언트 구성에서 지정하는 데 사용됩니다. 와일드카드 엔드포인트 구성 이름 "*"를 사용 가능하며 이 와일드카드는 정확하게 하나의 사용 가능한 엔드포인트 구성이 있으면 파일에서 엔드포인트 구성을 로드해야 하고 그렇지 않으면 예외를 throw해야 함을 ApplyConfiguration 메서드에 알려줍니다. 이 특성을 생략하면 해당하는 엔드포인트가 지정된 계약 형식과 연결된 기본 엔드포인트로 사용됩니다. name
특성의 기본값은 다른 이름과 마찬가지로 일치되는 빈 문자열입니다.
모든 엔드포인트에는 해당 엔드포인트를 찾아서 식별할 수 있는 연결된 주소가 있어야 합니다. ph x="1" /> 특성을 사용하면 엔드포인트의 위치를 제공하는 URL을 지정할 수 있습니다. URI(Uniform Resource Identifier)를 만든 다음 ServiceHost 메서드 중 하나를 사용하여 AddServiceEndpoint에 추가하여 서비스 엔드포인트의 주소를 코드로 지정할 수도 있습니다. 자세한 내용은 주소를 참조하세요. 소개에 표시된 대로 <headers> 및 <identity> 요소는 EndpointAddress의 일부이며 주소 항목에서도 설명합니다.
ph x="1" /> 특성은 서비스에 연결할 때 사용할 엔드포인트 바인딩 형식을 나타냅니다. 형식에 등록된 구성 섹션이 있어야 형식을 참조할 수 있습니다. 이전 예제의 <wsHttpBinding> 섹션에 해당되며, 이 섹션에서는 엔드포인트에서 WSHttpBinding을 사용한다는 것을 설명합니다. 그러나 엔드포인트에서 사용할 수 있는 지정된 형식의 바인딩이 여러 개 있을 수도 있습니다. 각 바인딩에는 (binding) 형식 요소 내에 고유한 <binding> 요소가 있습니다. bindingconfiguration
특성은 동일한 형식의 바인딩을 구분하는 데 사용됩니다. 해당 값은 <binding> 요소의 name
특성과 일치합니다. 구성을 사용하여 클라이언트 바인딩을 구성하는 방법에 관한 자세한 내용은 방법: 구성에서 클라이언트 바인딩 지정을 참조하세요.
behaviorConfiguration
특성은 엔드포인트에서 사용해야 하는 <endpointBehaviors>의 <behavior>를 지정하는 데 사용됩니다. 해당 값은 <behavior> 요소의 name
특성과 일치합니다. 구성을 사용하여 클라이언트 동작을 지정하는 예제는 클라이언트 동작 구성을 참조하세요.
ph x="1" /> 특성은 엔드포인트가 공개하는 계약을 지정합니다. 이 값은 ConfigurationName의 ServiceContractAttribute에 매핑됩니다. 기본값은 서비스를 구현하는 클래스의 전체 형식 이름입니다.
메타데이터 구성
<metadata> 요소는 메타데이터 가져오기 확장 등록에 사용되는 설정을 지정하는 데 사용됩니다. 메타데이터 시스템을 확장하는 방법에 대한 자세한 내용은 메타데이터 시스템 확장을 참조하세요.