クライアント構成Client Configuration

Windows Communication Foundation (WCF) クライアント構成を使用して、クライアントエンドポイントの "ABC" プロパティであるアドレス、バインド、動作、およびコントラクトを指定できます。このプロパティは、クライアントがサービスエンドポイントに接続するために使用します。You can use the Windows Communication Foundation (WCF) client configuration to specify the address, binding, behavior, and contract, the "ABC" properties of the client endpoint, which clients use to connect to service endpoints. <client>要素には、 <endpoint> エンドポイント abcs を構成するために使用される属性を持つ要素があります。The <client> element has an <endpoint> element whose attributes are used to configure the endpoint ABCs. これらの属性については、「エンドポイントの構成」セクションで説明します。These attributes are discussed in the Configuring Endpoints section.

要素には、 <endpoint> <metadata> メタデータのインポートとエクスポートの設定を指定するために使用される要素、 <headers> カスタムアドレスヘッダーのコレクションを格納する要素、および <identity> メッセージを交換する他のエンドポイントによるエンドポイントの認証を可能にする要素も含まれます。The <endpoint> element also contains a <metadata> element that is used to specify settings for importing and exporting metadata, a <headers> element that contains a collection of custom address headers, and an <identity> element that enables the authentication of an endpoint by other endpoints exchanging messages with it. <headers>要素と <identity> 要素は、の一部 EndpointAddress であり、アドレスに関する記事で説明されています。The <headers> and <identity> elements are part of the EndpointAddress and are discussed in the Addresses article. メタデータ拡張機能の使用方法について説明するトピックへのリンクについては、「メタデータの構成」セクションを参照してください。Links to topics that explain the use of metadata extensions are provided in the Configuring Metadata section.

エンドポイントの構成Configuring Endpoints

クライアント構成は、クライアントが1つまたは複数のエンドポイントを指定できるように設計されています。各エンドポイントには、それぞれ独自の名前、アドレス、およびコントラクトがあり、各エンドポイントは、 <bindings> <behaviors> そのエンドポイントを構成するために使用されるクライアント構成の要素と要素を参照します。The client configuration is designed to allow the client to specify one or more endpoints, each with its own name, address, and contract, with each referencing the <bindings> and <behaviors> elements in the client configuration to be used to configure that endpoint. クライアント構成ファイルは、WCF ランタイムが想定している名前であるため、"App.config" という名前にする必要があります。The client configuration file should be named "App.config" because this is the name that the WCF runtime expects. クライアント構成ファイルの例を次に示します。The following example shows a client configuration file.

<?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 属性は、特定のコントラクトのエンドポイントを一意に識別します。The optional name attribute uniquely identifies an endpoint for a given contract. この属性は、サービスへのチャネルの作成時に、クライアント構成のどのエンドポイントをターゲットとし、読み込む必要があるかを指定するために、ChannelFactory<TChannel> または ClientBase<TChannel> が使用します。It is used by the ChannelFactory<TChannel> or by the ClientBase<TChannel> to specify which endpoint in the client configuration is being targeted and must be loaded when a channel is created to service. ワイルドカードエンドポイント構成名 " * " を使用できます。また、 ApplyConfiguration 使用可能なエンドポイントが1つある場合は、その構成をファイルに読み込む必要があることをメソッドに示します。それ以外の場合は、例外がスローされます。A wildcard endpoint configuration name "*" is available and indicates to the ApplyConfiguration method that it should load any endpoint configuration in the file, provided there is precisely one available, and otherwise throws an exception. この属性が省略されている場合、指定されたコントラクトの種類に関連する既定のエンドポイントとして、対応するエンドポイントが使用されます。If this attribute is omitted, the corresponding endpoint is used as the default endpoint associated with the specified contract type. name 属性の既定値は、他の名前と同様に一致する空の文字列です。The default value for the name attribute is an empty string which is matched like any other name.

すべてのエンドポイントには、エンドポイントを検索および識別するために、アドレスが関連付けられている必要があります。Every endpoint must have an address associated with it to locate and identify the endpoint. address 属性は、エンドポイントの場所を示す URL を指定するために使用できます。The address attribute can be used to specify the URL that provides the location of the endpoint. ただし、サービス エンドポイントのアドレスは、コードで指定することもできます。その場合は、URI (Uniform Resource Identifier) を作成し、ServiceHost メソッドのいずれかを使用して、この URI を AddServiceEndpoint に追加します。But the address for a service endpoint can also be specified in code by creating a Uniform Resource Identifier (URI) and is added to the ServiceHost using one of the AddServiceEndpoint methods. 詳細については、「アドレス」を参照してください。For more information, see Addresses. 概要を示すように、 <headers> 要素と要素はの一部であり、 <identity> EndpointAddressアドレス」のトピックでも説明されています。As the introduction indicates, the <headers> and <identity> elements are part of the EndpointAddress and are also discussed in the Addresses topic.

binding 属性は、エンドポイントがサービスに接続する際に使用するバインディングの種類を示します。The binding attribute indicates the type of binding the endpoint expects to use when connecting to a service. 参照できるようにするには、種類は登録された構成セクションを持っている必要があります。The type must have a registered configuration section if it is to be referenced. 前の例では、これがセクションです。これは、 <wsHttpBinding> エンドポイントがを使用することを示し WSHttpBinding ます。In the previous example, this is the <wsHttpBinding> section, which indicates that the endpoint uses a WSHttpBinding. ただし、エンドポイントが使用できる、指定された種類のバインディングが複数存在することもあります。But there may be more than one binding of a given type that the endpoint can use. これらのそれぞれには <binding> 、(binding) type 要素内に独自の要素があります。Each of these has its own <binding> element within the (binding) type element. bindingconfiguration 属性は、同じ種類のバインディングを識別するために使用されます。The bindingconfiguration attribute is used to distinguish between bindings of the same type. この値は、 name 要素の属性と一致 <binding> します。Its value is matched with the name attribute of the <binding> element. 構成を使用してクライアントバインディングを構成する方法の詳細については、「方法: 構成でクライアントバインディングを指定する」を参照してください。For more information about how to configure a client binding using configuration, see How to: Specify a Client Binding in Configuration.

behaviorConfiguration属性は、 <behavior> エンドポイントで使用するを指定するために使用され <endpointBehaviors> ます。The behaviorConfiguration attribute is used to specify which <behavior> of the <endpointBehaviors> the endpoint should use. この値は、 name 要素の属性と一致 <behavior> します。Its value is matched with the name attribute of the <behavior> element. 構成を使用してクライアントの動作を指定する例については、「クライアントの動作の構成」を参照してください。For an example of using configuration to specify client behaviors, see Configuring Client Behaviors.

contract 属性は、エンドポイントが公開するコントラクトを指定します。The contract attribute specifies which contract the endpoint is exposing. この値は、ConfigurationNameServiceContractAttribute にマップされます。This value maps to the ConfigurationName of the ServiceContractAttribute. 既定値は、サービスを実装するクラスの完全な型名です。The default value is the full type name of the class that implements the service.

メタデータの構成Configuring Metadata

<metadata>要素は、メタデータのインポート拡張を登録するために使用される設定を指定するために使用されます。The <metadata> element is used to specify settings used to register metadata import extensions. メタデータシステムの拡張の詳細については、「メタデータシステムの拡張」を参照してください。For more information about extending the metadata system, see Extending the Metadata System.

関連項目See also