<basicHttpBinding>

Merupakan pengikatan yang dapat digunakan oleh layanan Windows Communication Foundation (WCF) untuk mengonfigurasi dan mengekspos titik akhir yang dapat berkomunikasi dengan layanan dan klien Web berbasis ASMX serta layanan lain yang sesuai dengan Profil Dasar WS-I 1.1.

<configuration>
  <system.serviceModel>
    <bindings>
      <basicHttpBinding>

Sintaks

<basicHttpBinding>
  <binding allowCookies="Boolean"
           bypassProxyOnLocal="Boolean"
           closeTimeout="TimeSpan"
           hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
           maxBufferPoolSize="Integer"
           maxBufferSize="Integer"
           maxReceivedMessageSize="Integer"
           messageEncoding="Text/Mtom"
           name="String"
           openTimeout="TimeSpan"
           proxyAddress="URI"
           receiveTimeout="TimeSpan"
           sendTimeout="TimeSpan"
           textEncoding="UnicodeFffeTextEncoding/Utf16TextEncoding/Utf8TextEncoding"
           transferMode="Buffered/Streamed/StreamedRequest/StreamedResponse"
           useDefaultWebProxy="Boolean">
    <security mode="None/Transport/Message/TransportWithMessageCredential/TransportCredentialOnly">
      <transport clientCredentialType="None/Basic/Digest/Ntlm/Windows/Certificate"
                 proxyCredentialType="None/Basic/Digest/Ntlm/Windows"
                 realm="String" />
      <message algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
               clientCredentialType="UserName/Certificate" />
    </security>
    <readerQuotas maxArrayLength="Integer"
                  maxBytesPerRead="Integer"
                  maxDepth="Integer"
                  maxNameTableCharCount="Integer"
                  maxStringContentLength="Integer" />
  </binding>
</basicHttpBinding>

Atribut dan Elemen

Bagian berikut menjelaskan atribut, elemen turunan, dan elemen induk.

Atribut

Atribut Deskripsi
allowCookies Nilai Boolean yang menunjukkan apakah klien menerima cookie dan menyebarkannya pada permintaan di masa mendatang. Defaultnya adalah false.

Anda dapat menggunakan properti ini saat berinteraksi dengan layanan Web ASMX yang menggunakan cookie. Dengan cara ini, Anda dapat yakin bahwa cookie yang dikembalikan dari server secara otomatis disalin ke semua permintaan klien di masa mendatang untuk layanan tersebut.
bypassProxyOnLocal Nilai Boolean yang menunjukkan apakah akan melewati server proksi untuk alamat lokal. Defaultnya adalah false.

Sumber daya Internet bersifat lokal jika memiliki alamat lokal. Alamat lokal adalah alamat yang ada di komputer yang sama, LAN lokal atau intranet dan diidentifikasi, secara sintaksis, dengan tidak adanya titik (.) seperti pada URI http://webserver/ dan http://localhost/.

Mengatur atribut ini menentukan apakah titik akhir yang dikonfigurasi dengan BasicHttpBinding menggunakan server proksi saat mengakses sumber daya lokal. Jika atribut ini adalah true, permintaan ke sumber daya Internet lokal tidak akan menggunakan server proksi. Gunakan nama host (bukan localhost) jika Anda ingin klien melalui proksi saat berbicara dengan layanan di komputer yang sama saat atribut ini diatur ke true.

Jika atribut ini adalah false, semua permintaan Internet dilakukan melalui server proksi.
closeTimeout Nilai TimeSpan yang menentukan interval waktu yang disediakan untuk menyelesaikan operasi tertutup. Nilai ini harus lebih besar dari atau sama dengan Zero. Defaultnya adalah 00:01:00.
hostNameComparisonMode Menentukan mode perbandingan nama host HTTP yang digunakan untuk mengurai URI. Atribut ini berjenis HostNameComparisonMode, yang menunjukkan apakah nama host digunakan untuk menjangkau layanan saat mencocokkan pada URI. Nilai defaultnya adalah StrongWildcard, yang mengabaikan nama host yang cocok.
maxBufferPoolSize Nilai bilangan bulat yang menentukan jumlah maksimum memori yang dialokasikan untuk digunakan oleh manajer buffer pesan yang menerima pesan dari saluran. Nilai default-nya adalah 524288 (0x80000) byte.

Pengelola Buffer meminimalkan biaya penggunaan buffer dengan menggunakan kumpulan buffer. Buffer diperlukan untuk memproses pesan oleh layanan ketika mereka keluar dari saluran. Jika tidak ada cukup memori di kumpulan buffer untuk memproses pemuatan pesan, Pengelola Buffer harus mengalokasikan memori tambahan dari tumpukan CLR, yang meningkatkan overhead pengumpulan sampah. Alokasi ekstensif dari tumpukan sampah CLR merupakan indikasi bahwa ukuran kumpulan buffer terlalu kecil dan performa dapat ditingkatkan dengan alokasi yang lebih besar dengan meningkatkan batas yang ditentukan oleh atribut ini.
maxBufferSize Nilai bilangan bulat yang menentukan ukuran maksimum, dalam byte, dari buffer yang menyimpan pesan saat diproses untuk titik akhir yang dikonfigurasi dengan pengikatan ini. Nilai defaultnya adalah 65,536 byte.
maxReceivedMessageSize Bilangan bulat positif yang menentukan ukuran pesan maksimum, dalam byte, termasuk header, untuk pesan yang dapat diterima pada saluran yang dikonfigurasi dengan pengikatan ini. Pengirim menerima kesalahan SOAP jika pesan terlalu besar untuk penerima. Penerima menghilangkan pesan dan membuat entri acara di log pelacakan. Defaultnya adalah 65.536 byte.
messageEncoding Mendefinisikan encoder yang digunakan untuk mengkodekan pesan SOAP. Nilai yang valid mencakup hal-hal berikut:

- Teks: Gunakan encoder pesan teks.
- Mtom: Gunakan encoder Message Transmission Organization Mechanism 1.0 (MTOM).

Standarnya adalah Teks. Atribut ini berjenis WSMessageEncoding.
name String yang berisi nama konfigurasi pengikatan. Nilai ini harus unik di antara pengikatan dari jenis yang sama. Dimulai dengan .NET Framework 4, pengikatan dan perilaku tidak perlu memiliki nama. Untuk informasi selengkapnya tentang konfigurasi default dan pengikatan serta perilaku tanpa nama, lihat Konfigurasi yang Disederhanakan dan Konfigurasi yang Disederhanakan untuk Layanan WCF.
openTimeout Nilai TimeSpan yang menentukan interval waktu yang disediakan untuk menyelesaikan operasi terbuka. Nilai ini harus lebih besar dari atau sama dengan Zero. Defaultnya adalah 00:01:00.
proxyAddress URI yang berisi alamat proksi HTTP. Jika useSystemWebProxy diatur ke true, pengaturan ini harus null. Defaultnya adalah null.
receiveTimeout Nilai TimeSpan yang menentukan interval waktu yang disediakan untuk menyelesaikan operasi penerimaan. Nilai ini harus lebih besar dari atau sama dengan Zero. Defaultnya adalah 00:10:00.
sendTimeout Nilai TimeSpan yang menentukan interval waktu yang disediakan untuk menyelesaikan operasi pengiriman. Nilai ini harus lebih besar dari atau sama dengan Zero. Defaultnya adalah 00:01:00.
textEncoding Mengatur pengkodean tataan karakter yang akan digunakan untuk memancarkan pesan pada pengikatan. Nilai yang valid mencakup hal-hal berikut:

- BigEndianUnicode: Pengodean Unicode BigEndian.
- Unicode: Pengodean 16-bit.
- UTF8: Pengodean 8-bit

Defaultnya adalah UTF8. Atribut ini berjenis Encoding.
transferMode Nilai TransferMode valid yang menentukan apakah pesan di-buffer atau dialirkan pada permintaan atau respons.
useDefaultWebProxy Nilai Boolean yang menentukan apakah proksi HTTP yang dikonfigurasi secara otomatis dari sistem harus digunakan, jika tersedia. Defaultnya adalah true.

Elemen Anak

Elemen Deskripsi
<security> Menentukan pengaturan keamanan untuk pengikatan. Elemen ini berjenis BasicHttpSecurityElement.
<readerQuotas> Mendefinisikan batasan pada kompleksitas pesan SOAP yang dapat diproses oleh titik akhir yang dikonfigurasi dengan pengikatan ini. Elemen ini berjenis XmlDictionaryReaderQuotasElement.

Elemen Induk

Elemen Deskripsi
<bindings> Elemen ini menyimpan koleksi pengikatan standar dan kustom.

Keterangan

BasicHttpBinding menggunakan HTTP sebagai transportasi untuk mengirim pesan SOAP 1.1. Layanan dapat menggunakan pengikatan ini untuk mengekspos titik akhir yang sesuai dengan WS-I BP 1.1, seperti yang dikonsumsi klien ASMX. Demikian pula, klien dapat menggunakan BasicHttpBinding untuk berkomunikasi dengan layanan yang mengekspos titik akhir yang sesuai dengan WS-I BP 1.1, seperti layanan Web ASMX atau layanan yang dikonfigurasi dengan BasicHttpBinding.

Keamanan dinonaktifkan secara default, tetapi dapat ditambahkan dengan mengatur atribut elemen turunan <security> ke nilai selain None. Ini menggunakan pengodean pesan "Teks" dan pengodean teks UTF-8 secara default.

Contoh 1

Contoh berikut menunjukkan penggunaan BasicHttpBinding yang menyediakan komunikasi HTTP dan interoperabilitas maksimum dengan layanan Web generasi pertama dan kedua. Pengikatan ditentukan dalam file konfigurasi untuk klien dan layanan. Jenis pengikatan ditentukan menggunakan atribut binding dari elemen <endpoint>. Jika Anda ingin mengonfigurasi pengikatan dasar dan mengubah beberapa pengaturannya, perlu untuk menentukan konfigurasi pengikatan. Titik akhir harus mengacu konfigurasi pengikatan berdasarkan nama dengan menggunakan atribut bindingConfiguration dari elemen <endpoint>, seperti yang ditunjukkan dalam kode konfigurasi berikut untuk layanan.

<system.serviceModel>
  <services>
    <service type="Microsoft.ServiceModel.Samples.CalculatorService"
             behaviorConfiguration="CalculatorServiceBehavior">
      <endpoint address=""
                binding="basicHttpBinding"
                bindingConfiguration="Binding1"
                contract="Microsoft.ServiceModel.Samples.ICalculator" />
    </service>
  </services>
  <bindings>
    <basicHttpBinding>
      <binding name="Binding1"
               hostNameComparisonMode="StrongWildcard"
               receiveTimeout="00:10:00"
               sendTimeout="00:10:00"
               openTimeout="00:10:00"
               closeTimeout="00:10:00"
               maxReceivedMessageSize="65536"
               maxBufferSize="65536"
               maxBufferPoolSize="524288"
               transferMode="Buffered"
               messageEncoding="Text"
               textEncoding="utf-8"
               bypassProxyOnLocal="false"
               useDefaultWebProxy="true">
        <security mode="None" />
      </binding>
    </basicHttpBinding>
  </bindings>
</system.serviceModel>

Contoh 2

Dimulai dengan .NET Framework 4, pengikatan dan perilaku tidak perlu memiliki nama. Fungsionalitas dari contoh sebelumnya dapat dicapai dengan menghapus bindingConfiguration dari alamat titik akhir dan nama dari pengikatan.

<system.serviceModel>
  <services>
    <service type="Microsoft.ServiceModel.Samples.CalculatorService"
             behaviorConfiguration="CalculatorServiceBehavior">
      <endpoint address=""
                binding="basicHttpBinding"
                contract="Microsoft.ServiceModel.Samples.ICalculator" />
    </service>
  </services>
  <bindings>
    <basicHttpBinding>
      <binding hostNameComparisonMode="StrongWildcard"
               receiveTimeout="00:10:00"
               sendTimeout="00:10:00"
               openTimeout="00:10:00"
               closeTimeout="00:10:00"
               maxReceivedMessageSize="65536"
               maxBufferSize="65536"
               maxBufferPoolSize="524288"
               transferMode="Buffered"
               messageEncoding="Text"
               textEncoding="utf-8"
               bypassProxyOnLocal="false"
               useDefaultWebProxy="true">
        <security mode="None" />
      </binding>
    </basicHttpBinding>
  </bindings>
</system.serviceModel>

Untuk informasi selengkapnya tentang konfigurasi default dan pengikatan serta perilaku tanpa nama, lihat Konfigurasi yang Disederhanakan dan Konfigurasi yang Disederhanakan untuk Layanan WCF.

Lihat juga