ClientkonfigurationClient Configuration

Mit der Clientkonfiguration von Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) können Sie die Adressen, Bindungen, Verhaltensweisen sowie Verträge angeben, die von Clients zum Herstellen einer Verbindung mit Dienstendpunkten verwendet werden.You can use the Windows Communication Foundation (WCF)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. Die <Client > Element verfügt über eine <Endpunkt > Element, dessen Attribute verwendet werden, um den Endpunkt ABC konfigurieren.The <client> element has an <endpoint> element whose attributes are used to configure the endpoint ABCs. Diese Attribute werden im Abschnitt "Konfigurieren von Endpunkten" dieses Themas erläutert.These attributes are discussed in the "Configuring Endpoints" section of this topic.

Die <Endpunkt > -Element enthält auch eine <Metadaten > Element, das verwendet wird, um Einstellungen anzugeben, für das Importieren und Exportieren von Metadaten, eine <Header > Element, das eine Auflistung von benutzerdefinierten Adressheadern enthält und eine <Identität > Element, das die Authentifizierung eines Endpunkts durch andere Endpunkte ermöglicht. mit denen er Meldungen austauscht.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. Die <Header > und <Identität > Elemente sind Teil der EndpointAddress und werden im erläutert die Adressen Thema.The <headers> and <identity> elements are part of the EndpointAddress and are discussed in the Addresses topic. Der Unterabschnitt "Konfigurieren von Metadaten" in diesem Thema enthält auch Hyperlinks zu Themen, in denen die Verwendung von Metadatenerweiterungen erläutert wird.Links to topics that explain the use of metadata extensions are provided in the Configuring Metadata sub-section of this topic.

Konfigurieren von EndpunktenConfiguring Endpoints

Die Clientkonfiguration soll dem Client gestatten, geben Sie eine oder mehrere Endpunkte mit dem vorhandenen Namen, Adresse, und Vertrag verfügt jeder Verweis auf die <Bindungen > und < Verhalten > Elemente in der Clientkonfiguration zum Konfigurieren des jeweiligen Endpunkts verwendet werden.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. Die Clientkonfigurationsdatei sollte "App.config" benannt werden, da dieser Name von der Laufzeit von WCFWCF erwartet wird.The client configuration file should be named "App.config" because this is the name that the WCFWCF runtime expects. Das folgende Beispiel zeigt eine Clientkonfigurationsdatei.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>  

Das optionale name-Attribut identifiziert eindeutig einen Endpunkt für einen angegebenen Vertrag.The optional name attribute uniquely identifies an endpoint for a given contract. Es wird von ChannelFactory<TChannel> oder ClientBase<TChannel> verwendet, um anzugeben, welcher Endpunkt in der Clientkonfiguration das Ziel ist, und muss beim Erstellen eines Kanals zur Verarbeitung geladen werden.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. Als Name für die Endpunktkonfiguration kann auch ein Platzhalterzeichen ("") verwendet werden. Dadurch wird die ApplyConfiguration-Methode angewiesen, ggf. genau eine Endpunktkonfiguration in der Datei zu laden. Andernfalls wird eine Ausnahme ausgelöst.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. Wenn dieses Attribut nicht angegeben wird, wird der entsprechende Endpunkt als Standardendpunkt verwendet, der mit dem angegebenen Vertragstyp verknüpft ist.If this attribute is omitted, the corresponding endpoint is used as the default endpoint associated with the specified contract type. Der Standardwert für das name-Attribut ist eine leere Zeichenfolge, die wie jeder andere Name abgeglichen wird.The default value for the name attribute is an empty string which is matched like any other name.

Jedem Endpunkt muss eine Adresse zugeordnet sein, um diesen suchen und identifizieren zu können.Every endpoint must have an address associated with it to locate and identify the endpoint. Das address-Attribut kann verwendet werden, um die URL anzugeben, die den Speicherort des Endpunkts bereitstellt.The address attribute can be used to specify the URL that provides the location of the endpoint. Die Adresse für einen Dienstendpunkt kann jedoch auch im Code angegeben werden, indem ein Uniform Resource Identifier (URI) erstellt und dem ServiceHost mit einer der AddServiceEndpoint-Methoden hinzugefügt wird.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. Weitere Informationen finden Sie unterFor more information, seeAdressen. Addresses. Wie die Einführung gibt an, die <Header > und <Identität > Elemente sind Teil der EndpointAddress und wird außerdem erläutert, der Adressen Thema.As the introduction indicates, the <headers> and <identity> elements are part of the EndpointAddress and are also discussed in the Addresses topic.

Das binding-Attribut gibt den Typ der Bindung an, der vom Endpunkt beim Herstellen einer Verbindung zu einem Dienst erwartet wird.The binding attribute indicates the type of binding the endpoint expects to use when connecting to a service. Dieser muss einen registrierten Konfigurationsabschnitt aufweisen, um darauf verweisen zu können.The type must have a registered configuration section if it is to be referenced. Im vorherigen Beispiel ist dies die <WsHttpBinding > Abschnitt, der angibt, dass der Endpunkt verwendet eine WSHttpBinding.In the previous example, this is the <wsHttpBinding> section, which indicates that the endpoint uses a WSHttpBinding. Möglicherweise sind jedoch mehrere Bindungen eines angegebenen Typs vorhanden, die vom Endpunkt verwendet werden können.But there may be more than one binding of a given type that the endpoint can use. Diese verfügen jeweils über eine eigene <Bindung > -Element im Typelement (Bindung).Each of these has its own <binding> element within the (binding) type element. Das bindingconfiguration-Attribut wird verwendet, um zwischen Bindungen des gleichen Typs zu unterscheiden.The bindingconfiguration attribute is used to distinguish between bindings of the same type. Der Wert stimmt mit der name Attribut des der <Bindung > Element.Its value is matched with the name attribute of the <binding> element. Weitere Informationen finden Sie unterFor more information aboutGewusst wie: Konfigurieren Sie einen Client-Konfiguration finden Sie unter wie: Angeben einer Clientbindung in einer Konfiguration. how to configure a client binding using configuration, see How to: Specify a Client Binding in Configuration.

Die behaviorConfiguration Attribut wird verwendet, um anzugeben, welcher <Verhalten > von der <EndpointBehaviors > vom Endpunkt verwendet werden soll.The behaviorConfiguration attribute is used to specify which <behavior> of the <endpointBehaviors> the endpoint should use. Der Wert stimmt mit der name Attribut des der <Verhalten > Element.Its value is matched with the name attribute of the <behavior> element. Ein Beispiel zum Verwenden der Konfiguration zur Clientverhalten anzugeben, finden Sie unter Konfigurieren von Clientverhalten.For an example of using configuration to specify client behaviors, see Configuring Client Behaviors.

Das contract-Attribut gibt den Vertrag an, den dieser Endpunkt verfügbar macht.The contract attribute specifies which contract the endpoint is exposing. Dieser Wert wird dem ConfigurationName des ServiceContractAttribute zugeordnet.This value maps to the ConfigurationName of the ServiceContractAttribute. Der Standardwert ist der vollständige Typname der Klasse, die den Dienst implementiert.The default value is the full type name of the class that implements the service.

Konfigurieren von MetadatenConfiguring Metadata

Die <Metadaten > Element wird verwendet, um die Einstellungen zur Registrierung von metadatenimporterweiterungen angegeben.The <metadata> element is used to specify settings used to register metadata import extensions. Weitere Informationen finden Sie unterFor more information aboutErweitern des metadatensystems finden Sie unterErweitern des Metadatensystems. extending the metadata system, seeExtending the Metadata System.

Siehe auchSee Also

Endpunkte: Adressen, Bindungen und VerträgeEndpoints: Addresses, Bindings, and Contracts
Konfigurieren von ClientverhaltenConfiguring Client Behaviors