Konfigurace klienta

Konfiguraci klienta WCF (Windows Communication Foundation) můžete použít k určení adresy, vazby, chování a kontraktu, vlastností "ABC" koncového bodu klienta, které klienti používají pro připojení ke koncovým bodům služby. Element <klienta> má prvek koncového <bodu> , jehož atributy se používají ke konfiguraci abcs koncového bodu. Tyto atributy jsou popsány v části Konfigurace koncových bodů .

Element koncového bodu> obsahuje <také element metadat>, který slouží k určení nastavení pro import a export metadat, element headers>, <který obsahuje kolekci hlaviček vlastních adres, a <element identity>, který umožňuje ověřování koncového bodu jinými koncovými body výměnou zpráv s ním.< Hlavičky <>a <prvky identity> jsou součástí EndpointAddress a jsou popsány v článku Adresy. Odkazy na témata vysvětlující použití rozšíření metadat jsou uvedeny v části Konfigurace metadat .

Konfigurace koncových bodů

Konfigurace klienta je navržená tak, aby klientovi umožňovala zadat jeden nebo více koncových bodů, každý s vlastním názvem, adresou a kontraktem, přičemž každý odkazuje na <vazby> a <prvky chování> v konfiguraci klienta, které se mají použít ke konfiguraci daného koncového bodu. Konfigurační soubor klienta by měl mít název App.config, protože se jedná o název, který modul runtime WCF očekává. Následující příklad ukazuje konfigurační soubor klienta.

<?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>  

Volitelný name atribut jednoznačně identifikuje koncový bod pro daný kontrakt. ChannelFactory<TChannel> Používá ho nebo určujeClientBase<TChannel>, na který koncový bod v konfiguraci klienta cílí, a musí se načíst při vytvoření kanálu pro službu. K dispozici je název konfigurace zástupné znaménky "*" a označuje metodu ApplyConfiguration , že by měla načíst jakoukoli konfiguraci koncového bodu v souboru za předpokladu, že je k dispozici přesně jedna, a jinak vyvolá výjimku. Pokud tento atribut vynecháte, použije se odpovídající koncový bod jako výchozí koncový bod přidružený k zadanému typu kontraktu. Výchozí hodnota atributu name je prázdný řetězec, který se shoduje s jakýmkoli jiným názvem.

Každý koncový bod musí mít přidruženou adresu k vyhledání a identifikaci koncového bodu. Atribut address lze použít k určení adresy URL, která poskytuje umístění koncového bodu. Adresu koncového bodu služby je ale možné zadat také v kódu vytvořením identifikátoru URI (Uniform Resource Identifier) a přidá se do ServiceHost jedné z AddServiceEndpoint metod. Další informace najdete v tématu Adresy. Jak je uvedeno v úvodu, <hlavičky> a <prvky identity> jsou součástí EndpointAddress a jsou také popsány v tématu Adresy.

Atribut binding označuje typ vazby, kterou koncový bod očekává při připojování ke službě. Typ musí mít registrovaný oddíl konfigurace, pokud se má odkazovat. V předchozím příkladu <je to část wsHttpBinding>, která indikuje, že koncový bod používá WSHttpBinding. Může ale existovat více než jedna vazba daného typu, kterou může koncový bod použít. Každý z těchto prvků má v elementu typu (binding) vlastní <prvek vazby> . Atribut bindingconfiguration se používá k rozlišení mezi vazbami stejného typu. Jeho hodnota se shoduje s name atributem elementu vazby><. Další informace o konfiguraci vazby klienta pomocí konfigurace naleznete v tématu Postupy: Určení vazby klienta v konfiguraci.

Atribut behaviorConfiguration se používá k určení <chování> koncového< boduBehaviors>, které má koncový bod použít. Jeho hodnota se shoduje s name atributem< prvku chování>. Příklad použití konfigurace k určení chování klienta naleznete v tématu Konfigurace chování klienta.

Atribut contract určuje, který kontrakt koncový bod vystavuje. Tato hodnota se mapuje na ConfigurationName hodnotu ServiceContractAttribute. Výchozí hodnota je úplný název typu třídy, která implementuje službu.

Konfigurace metadat

Element <metadat> slouží k určení nastavení, která slouží k registraci rozšíření importu metadat. Další informace o rozšíření systému metadat naleznete v tématu Rozšíření systému metadat.

Viz také