Compartir a través de


Configuración del cliente

Puede utilizar la configuración de cliente de Windows Communication Foundation (WCF) para especificar la dirección, enlace, comportamiento y contrato, las propiedades "ABC" del extremo del cliente, que los clientes utilizan para conectarse a los extremos del servicio. El elemento <client><endpoint> tiene un elemento cuyos atributos se utilizan para configurar los ABC del extremo. Estos atributos se discuten en la sección “Configuración de extremos” de este tema.

El elemento <endpoint><metadata> también contiene un elemento<headers>que se utiliza para especificar los valores para importar y exportar metadatos, un elemento <identity> que contiene una colección de encabezados de dirección personalizados, y un elemento que habilita la autenticación de un extremo por otros extremos que intercambian mensajes con él. Los elementos <headers><identity> yEndpointAddressDirecciones de extremo y se discuten en el tema . En la subsección Configuración de metadatos de este tema se proporcionan vínculos a temas que explican el uso de extensiones de metadatos.

Configuración de extremos

La configuración del cliente está diseñada para permitir al cliente especificar uno o más extremos, cada uno con su propio nombre, dirección y contrato, y con cada uno haciendo referencia a los elementos <bindings><behaviors> y en la configuración del cliente que se va a utilizar para configurar ese extremo. El archivo de configuración del cliente debería llamarse "App.config", porque se trata del nombre que el tiempo de ejecución de WCF espera. El siguiente ejemplo muestra un archivo de configuración de cliente.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.serviceModel>
        <client>
          <endpoint
            name="endpoint1"
            address="https://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>

El atributo opcional name identifica de manera única a un extremo de un contrato determinado. Es utilizado por ChannelFactory o ClientBase para especificar qué extremo de la configuración del cliente se destina y se debe cargar cuando se crea un canal para el servicio. Hay disponible un nombre de configuración de extremo de comodín "*" e indica al método ApplyConfiguration que debería cargar cualquier configuración de extremo del archivo, suponiendo que haya precisamente uno disponible o, si no fuese así, produjese una excepción. Si se omite este atributo, el extremo correspondiente se usa como el extremo predeterminado asociado al tipo de contrato especificado. El valor predeterminado para el atributo name es una cadena vacía que se iguala como cualquier otro nombre.

Cada extremo debe tener una dirección asociada a él para ubicar e identificar el extremo. El atributo address se puede utilizar para especificar la dirección URL que proporciona la ubicación del extremo. Pero la dirección de un extremo de servicio también se puede especificar en código mediante la creación de un Identificador uniforme de recursos (URI) y se agrega al ServiceHost utilizando uno de los métodos AddServiceEndpoint. Para obtener más información, vea Direcciones de extremo. Como la introducción indica, los elementos <headers><identity> yEndpointAddressDirecciones de extremo y también se discuten en el tema .

El atributo binding indica el tipo de enlace que el extremo espera utilizar al conectarse a un servicio. El tipo debe tener una sección de configuración registrada si se le va a hacer referencia. En el ejemplo anterior, ésta es la sección <wsHttpBinding>, que indica que el extremo utiliza un WSHttpBinding. Pero puede que haya más de un enlace de un tipo determinado que el extremo puede utilizar. Cada uno de éstos tiene su propio elemento <binding> dentro del elemento de tipo (enlace). El atributo bindingconfiguration se utiliza para distinguir entre enlaces del mismo tipo. Su valor se hace coincidir con el atributo name del elemento <binding>. Para obtener más información sobre cómo configurar un enlace de cliente mediante configuración, vea Cómo: Especificar un enlace de cliente en la configuración.

El atributo behaviorConfiguration se utiliza para especificar qué <behavior><endpointBehaviors> de los debería usar el extremo. Su valor se hace coincidir con el atributo name del elemento <behavior>. Para obtener un ejemplo del uso de la configuración para especificar los comportamientos del cliente, vea Configuración de los comportamientos del cliente.

El atributo contract especifica qué contrato expone este extremo. Este valor se asigna al ConfigurationName del ServiceContractAttribute. El valor predeterminado es el nombre de tipo completo de la clase que implementa el servicio.

Configuración de metadatos

El elemento <metadata> se utiliza para especificar los valores utilizados para registrar las extensiones de importación de metadatos. Para obtener más información sobre la extensión del sistema de metadatos, vea Extensión del sistema de metadatos.

Vea también

Conceptos

Extremos: direcciones, enlaces y contratos
Configuración de los comportamientos del cliente