Bagikan melalui


Konfigurasi Klien

Anda dapat menggunakan konfigurasi klien Windows Communication Foundation (WCF) untuk menentukan alamat, pengikatan, perilaku, dan kontrak, properti "ABC" dari titik akhir klien, yang digunakan klien untuk terhubung ke titik akhir layanan. Elemen <klien> memiliki <elemen> titik akhir yang atributnya digunakan untuk mengonfigurasi ABC titik akhir. Atribut ini dibahas di bagian Mengonfigurasi Titik Akhir.

Elemen <titik akhir> juga berisi elemen <metadata> yang digunakan untuk menentukan pengaturan untuk mengimpor dan mengekspor metadata, elemen <header> yang berisi kumpulan header alamat kustom, dan elemen <identitas> yang memungkinkan autentikasi titik akhir oleh titik akhir lain yang bertukar pesan dengannya. <Header> dan elemen <identitas> adalah bagian dari EndpointAddress dan dibahas dalam artikel Alamat. Tautan ke topik yang menjelaskan penggunaan ekstensi metadata disediakan di bagian Mengonfigurasi Metadata.

Mengonfigurasi Titik Akhir

Konfigurasi klien dirancang untuk memungkinkan klien menentukan satu atau beberapa titik akhir, masing-masing dengan nama, alamat, dan kontraknya sendiri, dengan masing-masing merujuk elemen <pengikatan> dan <perilaku> dalam konfigurasi klien yang akan digunakan untuk mengonfigurasi titik akhir tersebut. File konfigurasi klien harus diberi nama "App.config" karena ini adalah nama yang diharapkan runtime bahasa umum WCF. Contoh kode berikut menunjukkan file konfigurasi default.

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

Atribut opsional name secara unik mengidentifikasi titik akhir untuk kontrak tertentu. Ini digunakan oleh ChannelFactory<TChannel> atau oleh ClientBase<TChannel> untuk menentukan titik akhir mana dalam konfigurasi klien yang ditargetkan dan harus dimuat saat saluran dibuat ke layanan. Nama konfigurasi titik akhir wildcard "*" tersedia dan menunjukkan ke ApplyConfiguration metode yang harus memuat konfigurasi titik akhir apa pun dalam file, asalkan ada satu yang tersedia, dan jika tidak memberikan pengecualian. Jika atribut ini dihilangkan, titik akhir yang sesuai akan digunakan sebagai titik akhir default yang terkait dengan jenis kontrak yang ditentukan. Nilai default untuk name atribut adalah string kosong yang cocok seperti nama lainnya.

Setiap titik akhir memiliki alamat yang terkait dengannya untuk menemukan dan mengidentifikasi titik akhir. Atribut address dapat digunakan untuk menentukan URL yang menyediakan lokasi titik akhir. Tetapi alamat untuk titik akhir layanan juga dapat ditentukan dalam kode dengan membuat Pengidentifikasi Sumber Daya Seragam (Uniform Resource Identifier atau URI) dan ditambahkan ke ServiceHost menggunakan salah satu AddServiceEndpoint metode. Untuk informasi selengkapnya, lihat Alamat. Seperti yang ditunjukkan oleh pengenalan, <header> dan elemen < identitas> adalah bagian dari EndpointAddress dan juga dibahas dalam topik Alamat.

Atribut binding menunjukkan jenis pengikatan titik akhir yang diharapkan digunakan saat menyambungkan ke layanan. Jenis harus memiliki bagian konfigurasi terdaftar agar dapat direferensikan. Dalam contoh sebelumnya, ini adalah bagian <wsHttpBinding>, yang menunjukkan bahwa titik akhir menggunakan WSHttpBinding. Tetapi mungkin ada lebih dari satu pengikatan jenis tertentu yang dapat digunakan titik akhir. Masing-masing memiliki elemen <pengikatannya> sendiri dalam elemen jenis (pengikatan). Atribut bindingconfiguration ini digunakan untuk membedakan antara pengikatan dengan jenis yang sama. Nilainya dicocokkan dengan name atribut dari elemen <pengikatan>. Untuk informasi selengkapnya tentang cara mengonfigurasi pengikatan klien menggunakan konfigurasi, lihat Cara: Menentukan Pengikatan Klien dalam Konfigurasi.

Atribut behaviorConfiguration digunakan untuk menentukan <perilaku > dari <endpointBehaviors>yang harus digunakan titik akhir. Nilainya dicocokkan dengan name atribut dari elemen <perilaku>. Untuk contoh penggunaan konfigurasi untuk menentukan perilaku klien, lihat Mengonfigurasi Perilaku Klien.

Atribut contract menentukan kontrak yang diekspos titik akhir ini. Nilai ini memetakan ke ConfigurationName dari ServiceContractAttribute. Nilai default adalah nama jenis lengkap kelas yang mengimplementasikan layanan.

Mengonfigurasi Metadata

Elemen <metadata> digunakan untuk menentukan pengaturan yang digunakan untuk mendaftarkan ekstensi impor metadata. Untuk informasi selengkapnya tentang memperluas sistem metadata, lihat Memperluas Sistem Metadata.

Lihat juga