Bagikan melalui


<customBinding>

Memberikan kontrol penuh atas tumpukan olahpesan untuk pengguna.

<configuration>
  <system.serviceModel>
    <bindings>
      <customBinding>

Syntax

<customBinding>
  <binding name="String"
           closeTimeout="TimeSpan"
           openTimeout="TimeSpan"
           receiveTimeout="TimeSpan"
           sendTimeout="TimeSpan">
    <compositeDuplex clientBaseAddress="Uri" />
    <reliableSession acknowledgementInterval="TimeSpan"
                     advancedFlowControl="Boolean"
                     bufferedMessagesQuota="Integer"
                     inactivityTimeout="TimeSpan"
                     maxPendingChannels="Integer"
                     maxRetryCount="Integer"
                     ordered="Boolean" />
    <pnrpPeerResolver />
    <windowsStreamSecurity protectionLevel="None/Sign/EncryptAndSign" />
    <sslStreamSecurity requireClientCertificate="Boolean" />
    <transactionFlow transactionProtocol="OleTransactions/WSAtomicTransactionOctober2004" />
    <security defaultAlgorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
              authenticationMode="UserNameForAnonymous"
              contextMode="Cookie"
              defaultProtectionLevel="Sign"
              enableKeyDerivation="false"
              keyEntropyMode="ClientEntropy"
              messageProtectionOrder="SignBeforeEncryptAndEncryptSignature"
              securityVersion="WSSecurityXXX2005">
      <localClientSettings cacheCookies="false"
                           detectReplays="false"
                           maxCookieCachingTime="00:07:24" />
      <localServiceSettings replayCacheSize="9"
                            maxClockSkew="00:00:03"
                            replayWindow="00:07:22.2190000" />
    </security>
    <binaryMessageEncoding maxReadPoolSize="Integer"
                           maxWritePoolSize="Integer"
                           maxSessionSize="Integer" />
    <httpsTransport manualAddressing="Boolean"
                    maxMessageSize="Integer"
                    authenticationScheme="Negotiate"
                    bypassProxyOnLocal="Boolean"
                    hostNameComparisonMode="Exact"
                    mapAddressingHeadersToHttpHeaders="Boolean"
                    proxyaddress="Uri"
                    realm="String"
                    requireClientCertificate="Boolean" />
    <peerTransport manualAddressing="false"
                   maxMessageSize="20002"
                   listenIPAddress="202.10.1.9"
                   messageAuthentication="false"
                   peerNodeAuthenticationMode="None"
                   port="1000" />
    <security defaultAlgorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
              authenticationMode="UserNameForAnonymous"
              bootstrapBindingConfiguration="String"
              bootstrapBindingSectionName="String"
              defaultProtectionLevel="None/Sign/EncryptAndSign"
              requireDerivedKeys="Boolean"
              securityHeaderLayout="Strict/Lax/LaxTimestampFirst/LaxTimestampLast"
              includeTimestamp="Boolean"
              keyEntropyMode="ClientEntropy/ServerEntropy/CombinedEntropy"
              messageProtectionOrder="SignBeforeEncrypt/SignBeforeEncryptAndEncryptSignature/EncryptBeforeSign"
              protectTokens="Boolean"
              requireSecurityContextCancellation="Boolean"
              securityVersion=" WSSecurityJan2004/WSSecurityXXX2005"
              requireSignatureConfirmation="Boolean">
      <localClientSettings cacheCookies="Boolean"
                           detectReplays="Boolean"
                           replayCacheSize="Integer"
                           maxClockSkew="TimeSpan"
                           maxCookieCachingTime="TimeSpan"
                           replayWindow="TimeSpan"
                           sessionKeyRenewalInterval="TimeSpan"
                           sessionKeyRolloverInterval="TimeSpan"
                           reconnectOnTransportFailure="Boolean"
                           timestampValidityDuration="TimeSpan"
                           cookieRenewalThresholdPercentage="Integer" />
      <localServiceSettings detectReplays="Boolean"
                            issuedCookieLifeTime="TimeSpan"
                            maxStatefulNegotiations="Integer"
                            replayCacheSize="Integer"
                            maxClockSkew="TimeSpan"
                            negotiationTimeout="TimeSpan"
                            replayWindow="TimeSpan"
                            inactivityTimeout="TimeSpan"
                            sessionKeyRenewalInterval="TimeSpan"
                            sessionKeyRolloverInterval="TimeSpan"
                            reconnectOnTransportFailure="Boolean"
                            maxConcurrentSessions="Integer"
                            timestampValidityDuration="TimeSpan" />
      <federationParameters trustVersion="WSTrustApr2004/WSTrustFeb2005" />
    </security>
    <security defaultAlgorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
              authenticationMode="UserNameForAnonymous"
              bootstrapBindingConfiguration="String"
              bootstrapBindingSectionName="String"
              defaultProtectionLevel="None/Sign/EncryptAndSign"
              requireDerivedKeys="Boolean"
              securityHeaderLayout="Strict/Lax/LaxTimestampFirst/LaxTimestampLast"
              includeTimestamp="Boolean"
              keyEntropyMode="ClientEntropy/ServerEntropy/CombinedEntropy"
              messageProtectionOrder="SignBeforeEncrypt/SignBeforeEncryptAndEncryptSignature/EncryptBeforeSign"
              protectTokens="Boolean"
              requireSecurityContextCancellation="Boolean"
              securityVersion=" WSSecurityJan2004/WSSecurityXXX2005"
              requireSignatureConfirmation="Boolean" >
      <localClientSettings cacheCookies="Boolean"
                           detectReplays="Boolean"
                           replayCacheSize="Integer"
                           maxClockSkew="TimeSpan"
                           maxCookieCachingTime="TimeSpan"
                           replayWindow="TimeSpan"
                           sessionKeyRenewalInterval="TimeSpan"
                           sessionKeyRolloverInterval="TimeSpan"
                           reconnectOnTransportFailure="Boolean"
                           timestampValidityDuration="TimeSpan"
                           cookieRenewalThresholdPercentage="Integer" />
      <localServiceSettings detectReplays="Boolean"
                           issuedCookieLifeTime="TimeSpan"
                           maxStatefulNegotiations="Integer"
                           replayCacheSize="Integer"
                           maxClockSkew="TimeSpan"
                           negotiationTimeout="TimeSpan"
                           replayWindow="TimeSpan"
                           inactivityTimeout="TimeSpan"
                           sessionKeyRenewalInterval="TimeSpan"
                           sessionKeyRolloverInterval="TimeSpan"
                           reconnectOnTransportFailure="Boolean"
                           maxConcurrentSessions="Integer"
                           timestampValidityDuration="TimeSpan" />
      <federationParameters trustVersion="WSTrustApr2004/WSTrustFeb2005" />
      <genericIssuedTokenParameters>
        <localIssuerIssuedTokenParameters keyType="SymmetricKey/PublicKey"
                                          keySize="Integer"
                                          tokenType="String" />
        <issuedTokenParametersEndpointAddress address="URI"
                                              bindingConfiguration="String"
                                              binding="String" />
        <issuedTokenClient localIssuerChannelBehaviors="String"
                           cacheIssuedTokens="Boolean"
                           maxIssuedTokenCachingTime="TimeSpan"
                           keyEntropyMode="ClientEntropy/ServerEntropy/CombinedEntropy" />
        <issuedTokenClientBehavior issuerAddress="String"
                                   behaviorConfiguration="String" />
        <issuedTokenClientBehavior address="URI"
                                   bindingConfiguration="String"
                                   binding="String" />
      </genericIssuedTokenParameters>
    </security>
  </binding>
</customBinding>

Atribut dan Elemen

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

Attributes

Attribute Description
closeTimeout Nilai TimeSpan yang menentukan interval waktu yang disediakan agar operasi dekat selesai. Nilai ini harus lebih besar dari atau sama dengan Zero. Defaultnya adalah 00:01:00.
Nama String yang berisi nama konfigurasi pengikatan. Nilai ini adalah string yang ditentukan pengguna yang bertindak sebagai string identifikasi untuk pengikatan kustom. Dimulai dengan .NET Framework 4, pengikatan dan perilaku tidak diperlukan untuk memiliki nama. Untuk informasi selengkapnya tentang konfigurasi default dan pengikatan dan perilaku tanpa nama, lihat Konfigurasi Yang Disederhanakan dan Konfigurasi Yang Disederhanakan untuk Layanan WCF.
openTimeout TimeSpan Nilai yang menentukan interval waktu yang disediakan agar operasi terbuka selesai. Nilai ini harus lebih besar dari atau sama dengan Zero. Defaultnya adalah 00:01:00.
receiveTimeout Nilai TimeSpan yang menentukan interval waktu yang disediakan agar operasi penerima selesai. Nilai ini harus lebih besar dari atau sama dengan Zero. Defaultnya adalah 00:01:00.
sendTimeout Nilai TimeSpan yang menentukan interval waktu yang disediakan agar operasi pengiriman selesai. Nilai ini harus lebih besar dari atau sama dengan Zero. Defaultnya adalah 00:01:00.

Elemen Anak

Elemen Description
<compositeDuplex> Menentukan pesan dua arah ke pengikatan kustom. Ini digunakan dengan transportasi yang tidak memungkinkan komunikasi dupleks secara asli, misalnya, HTTP. TCP, sebaliknya, memungkinkan komunikasi dupleks secara asli, dan tidak memerlukan penggunaan elemen pengikatan ini untuk layanan untuk mengirim pesan kembali ke klien.

Klien harus mengekspos alamat layanan untuk melakukan kontak dan membuat koneksi. Alamat klien ini disediakan oleh ClientBaseAddress atribut .

Elemen ini berjenis CompositeDuplexElement.
<pnrpPeerResolver> Menentukan penyelesai nama serekan Peer Name Resolution Protocol (PNRP). Elemen ini berjenis PnrpPeerResolverElement.
<reliableSession> Menentukan pengaturan untuk Olahpesan WS-Reliable. Ketika elemen ini ditambahkan ke pengikatan kustom, saluran yang dihasilkan dapat mendukung jaminan pengiriman tepat sekali. Elemen ini berjenis ReliableSessionElement.
<keamanan> Menentukan opsi untuk keamanan pengikatan kustom. Elemen ini berjenis SecurityElement.
<sslStreamSecurity> Menentukan pengaturan keamanan untuk pengikatan aliran SSL. Elemen ini berjenis SslStreamSecurityElement.
<transactionFlow> Menentukan bahwa pengikatan mendukung alur transaksi, dan protokol yang akan digunakan oleh transactionProtocol atribut . Elemen ini berjenis TransactionFlowElement.
<windowsStreamSecurity> Menentukan opsi untuk keamanan streaming pengikatan kustom. Elemen ini berjenis WindowsStreamSecurityElement.

Elemen Induk

Elemen Description
bindings Berisi semua pengikatan untuk aplikasi Windows Communication Foundation.

Komentar

Pengikatan kustom memberikan kontrol penuh atas tumpukan olahpesan WCF. Pengikatan khusus yang disesuaikan dapat dibuat saya menambahkan elemen konfigurasi untuk entitas tertentu. Misalnya, pengguna dapat menggabungkan httpsTransport bagian, bagian, reliableSession dan security bagian untuk membuat pengikatan berbasis https yang andal dan aman.

Pengikatan individual menentukan tumpukan pesan dengan menentukan elemen konfigurasi untuk elemen tumpukan dalam urutan muncul di tumpukan. Setiap elemen menentukan dan mengonfigurasi satu elemen tumpukan. Harus ada satu dan hanya satu elemen transportasi di setiap pengikatan kustom. Tanpa elemen ini, tumpukan olahpesan tidak lengkap.

Urutan di mana elemen muncul dalam tumpukan penting, karena merupakan urutan di mana operasi diterapkan ke pesan. Urutan elemen tumpukan yang direkomendasikan adalah sebagai berikut:

  1. Transaksi (opsional)

  2. Reliable Messaging (opsional)

  3. Keamanan (opsional)

  4. Transport

  5. Encoder (opsional)

Gunakan pengikatan kustom saat salah satu pengikatan yang disediakan sistem tidak memenuhi persyaratan layanan Anda. Pengikatan kustom dapat digunakan, misalnya, untuk mengaktifkan penggunaan transportasi baru atau encoder baru di titik akhir layanan.

Pengikatan kustom dibangun menggunakan salah CustomBinding satu dari kumpulan elemen pengikatan yang "ditumpuk" dalam urutan tertentu:

Tabel berikut ini meringkas opsi untuk setiap lapisan.

Lapisan Opsi Diperlukan
Aliran Transaksi TransactionFlowBindingElement Tidak.
Reliability ReliableSessionBindingElement Tidak.
Keamanan Simetris, Asimetris, Transport-Level Tidak.
Perubahan Bentuk CompositeDuplexBindingElement Tidak.
Peningkatan Transportasi Aliran SSL, aliran Windows, Pemecah Masalah Serekan Tidak.
Pengkodean Teks, Biner, MTOM, Kustom Yes
Transport TCP, Pipa Bernama, HTTP, HTTPS, rasa MSMQ, Kustom Yes

Selain itu, Anda dapat menentukan elemen pengikatan Anda sendiri dan menyisipkannya di antara salah satu lapisan yang ditentukan sebelumnya.

Untuk diskusi tentang cara menggunakan pengikatan kustom untuk memodifikasi pengikatan yang disediakan sistem, lihat Cara: Menyesuaikan pengikatan System-Provided.

Lihat juga