Dela via


Klientkonfiguration

Du kan använda WCF-klientkonfigurationen (Windows Communication Foundation) för att ange adress, bindning, beteende och kontrakt, egenskaperna "ABC" för klientslutpunkten, som klienter använder för att ansluta till tjänstslutpunkter. Klientelementet <>har ett <slutpunktselement> vars attribut används för att konfigurera slutpunkts-ABCs. Dessa attribut beskrivs i avsnittet Konfigurera slutpunkter .

Slutpunktselementet <>innehåller också ett <metadataelement> som används för att ange inställningar för att importera och exportera metadata, ett <rubrikelement> som innehåller en samling anpassade adresshuvuden och ett< identitetselement> som möjliggör autentisering av en slutpunkt av andra slutpunkter som utbyter meddelanden med den. Rubrikerna <och< identitetselementen>EndpointAddress>är en del av och beskrivs i artikeln Adresser. Länkar till ämnen som förklarar användningen av metadatatillägg finns i avsnittet Konfigurera metadata .

Konfigurera slutpunkter

Klientkonfigurationen är utformad för att tillåta klienten att ange en eller flera slutpunkter, var och en med sitt eget namn, sin adress och sitt kontrakt, där var och en refererar <till bindningar> och <beteendeelement> i klientkonfigurationen som ska användas för att konfigurera slutpunkten. Klientkonfigurationsfilen ska ha namnet "App.config" eftersom det här är det namn som WCF-körningen förväntar sig. I följande exempel visas en klientkonfigurationsfil.

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

Det valfria name attributet identifierar unikt en slutpunkt för ett visst kontrakt. Den används av ChannelFactory<TChannel> eller av ClientBase<TChannel> för att ange vilken slutpunkt i klientkonfigurationen som ska riktas och måste läsas in när en kanal skapas till tjänsten. Ett konfigurationsnamn för jokerteckenslutpunkten "*" är tillgängligt och anger för ApplyConfiguration metoden att den ska läsa in alla slutpunktskonfigurationer i filen, förutsatt att det finns exakt en tillgänglig och i övrigt genererar ett undantag. Om det här attributet utelämnas används motsvarande slutpunkt som standardslutpunkt som är associerad med den angivna kontraktstypen. Standardvärdet för name attributet är en tom sträng som matchas som alla andra namn.

Varje slutpunkt måste ha en associerad adress för att hitta och identifiera slutpunkten. Attributet address kan användas för att ange den URL som tillhandahåller slutpunktens plats. Men adressen för en tjänstslutpunkt kan också anges i kod genom att skapa en URI (Uniform Resource Identifier) och läggs till ServiceHost med någon av AddServiceEndpoint metoderna. Mer information finns i Adresser. Som inledningen anger <är rubrikerna och <identitetselementenEndpointAddress>> en del av och diskuteras också i avsnittet Adresser.

Attributet binding anger vilken typ av bindning slutpunkten förväntar sig att använda vid anslutning till en tjänst. Typen måste ha ett registrerat konfigurationsavsnitt om den ska refereras. I föregående exempel är detta avsnittet wsHttpBinding>, som anger att slutpunkten använder en WSHttpBinding.< Men det kan finnas mer än en bindning av en viss typ som slutpunkten kan använda. Var och en av dessa har ett eget <bindningselement> i (bindningstypelementet). Attributet bindingconfiguration används för att skilja mellan bindningar av samma typ. Dess värde matchas med name attributet för bindningselementet<>. Mer information om hur du konfigurerar en klientbindning med hjälp av konfiguration finns i Så här anger du en klientbindning i konfigurationen.

Attributet behaviorConfiguration används för att ange vilket <beteende>< endpointBehaviors> som slutpunkten ska använda. Dess värde matchas med name attributet för <beteendeelementet> . Ett exempel på hur du använder konfiguration för att ange klientbeteenden finns i Konfigurera klientbeteenden.

Attributet contract anger vilket kontrakt slutpunkten exponeras för. Det här värdet mappas ConfigurationName till i ServiceContractAttribute. Standardvärdet är det fullständiga typnamnet för den klass som implementerar tjänsten.

Konfigurera metadata

Metadataelementet <> används för att ange inställningar som används för att registrera tillägg för metadataimport. Mer information om hur du utökar metadatasystemet finns i Utöka metadatasystemet.

Se även