<customBinding><customBinding>

Fournit le contrôle total sur la pile de messagerie pour l'utilisateur.Provides full control over the messaging stack for the user.

<system.serviceModel>\<system.serviceModel>\ <bindings>\<bindings>\ <customBinding><customBinding>

SyntaxeSyntax

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

Attributs et élémentsAttributes and Elements

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.The following sections describe attributes, child elements, and parent elements

AttributsAttributes

AttributAttribute DescriptionDescription
closeTimeoutcloseTimeout TimeSpan qui spécifie l'intervalle de temps prévu pour la réalisation d'une opération de fermeture.A TimeSpan value that specifies the interval of time provided for a close operation to complete. Cette valeur doit être supérieure ou égale à Zero.This value should be greater than or equal to Zero. La valeur par défaut est 00:01:00.The default is 00:01:00.
namename Chaîne qui contient le nom de configuration de la liaison.A string that contains the configuration name of the binding. Cette valeur est une chaîne définie par l'utilisateur qui sert de chaîne d'identification à la liaison personnalisée.This value is a user-defined string that acts as the identification string for the custom binding. Depuis .NET Framework 4.NET Framework 4, les liaisons et les comportements ne sont pas obligés d’avoir un nom.Starting with .NET Framework 4.NET Framework 4, bindings and behaviors are not required to have a name. Pour plus d’informations sur la configuration par défaut et les liaisons sans nom et les comportements, consultez Simplified Configuration et Simplified Configuration for WCF Services.For more information about default configuration and nameless bindings and behaviors, see Simplified Configuration and Simplified Configuration for WCF Services.
openTimeoutopenTimeout TimeSpan qui spécifie l'intervalle de temps prévu pour la réalisation d'une opération d'ouverture.A TimeSpan value that specifies the interval of time provided for an open operation to complete. Cette valeur doit être supérieure ou égale à Zero.This value should be greater than or equal to Zero. La valeur par défaut est 00:01:00.The default is 00:01:00.
receiveTimeoutreceiveTimeout TimeSpan qui spécifie l'intervalle de temps prévu pour la réalisation d'une opération de réception.A TimeSpan value that specifies the interval of time provided for a receive operation to complete. Cette valeur doit être supérieure ou égale à Zero.This value should be greater than or equal to Zero. La valeur par défaut est 00:01:00.The default is 00:01:00.
sendTimeoutsendTimeout TimeSpan qui spécifie l'intervalle de temps prévu pour la réalisation d'une opération d'envoi.A TimeSpan value that specifies the interval of time provided for a send operation to complete. Cette valeur doit être supérieure ou égale à Zero.This value should be greater than or equal to Zero. La valeur par défaut est 00:01:00.The default is 00:01:00.

Éléments enfantsChild Elements

ÉlémentElement DescriptionDescription
<compositeDuplex><compositeDuplex> Spécifie la messagerie bidirectionnelle pour la liaison personnalisée.Specifies two-way messaging to the custom binding. Il est utilisé avec les transports qui n'autorisent pas nativement les communications duplex, comme HTTP.It is used with transports that do not allow duplex communications natively, for example, HTTP. En revanche, TCP autorise nativement les communications duplex et ne requiert pas l'utilisation de cet élément de liaison pour permettre au service de renvoyer des messages à un client.TCP, by contrast, allows duplex communications natively, and does not require the use of this binding element for the service to send messages back to a client.

Le client doit exposer une adresse pour que le service puisse entrer en contact avec lui et établir une connexion.The client must expose an address for the service to make contact and establish a connection. Cette adresse cliente est fournie par l'attribut ClientBaseAddress.This client address is provided by the ClientBaseAddress attribute.

Cet élément est de type CompositeDuplexElement.This element is of type CompositeDuplexElement.
<pnrpPeerResolver><pnrpPeerResolver> Spécifie un programme de résolution de nom d’homologue PNRP (Peer Name Resolution Protocol).Specifies a Peer Name Resolution Protocol (PNRP) peer name resolver. Cet élément est de type PnrpPeerResolverElement.This element is of type PnrpPeerResolverElement.
<reliableSession><reliableSession> Spécifie le paramètre de WS-Reliable Messaging.Specifies the setting for WS-Reliable Messaging. Lorsque cet élément est ajouté à une liaison personnalisée, le canal résultant peut prendre en charge des assurances de remise EOD (Exactly-Once-Delivery).When this element is added to a custom binding, the resulting channel can support exactly-once delivery assurances. Cet élément est de type ReliableSessionElement.This element is of type ReliableSessionElement.
<security><security> Spécifie les options de sécurité de la liaison personnalisée.Specifies the options for security of the custom binding. Cet élément est de type SecurityElement.This element is of type SecurityElement.
<sslStreamSecurity><sslStreamSecurity> Spécifie les paramètres de sécurité pour une liaison de flux de données SSL.Specifies the security settings for a SSL stream binding. Cet élément est de type SslStreamSecurityElement.This element is of type SslStreamSecurityElement.
<transactionFlow><transactionFlow> Spécifie que le flux de la transaction des prises en charge de la liaison, ainsi que le protocole à utiliser par l’attribut transactionProtocol.Specifies that the binding supports transaction flow, and the protocol to be used by the transactionProtocol attribute. Cet élément est de type TransactionFlowElement.This element is of type TransactionFlowElement.
<windowsStreamSecurity><windowsStreamSecurity> Spécifie les options permettant de transmettre en continu la sécurité de la liaison personnalisée.Specifies the options for streaming security of the custom binding. Cet élément est de type WindowsStreamSecurityElement.This element is of type WindowsStreamSecurityElement.

Éléments parentsParent Elements

ÉlémentElement DescriptionDescription
liaisonsbindings Contient toutes les liaisons pour les applications de Windows Communication Foundation.Contains all bindings for Windows Communication Foundation applications.

NotesRemarks

Les liaisons personnalisées permettent d'exercer un contrôle total sur la pile de messagerie WCF.Custom bindings provide full control over the WCF messaging stack. Les liaisons spécialement conçues peuvent être créées en ajoutant des éléments de configuration pour des entités spécifiques.Special tailored bindings can be created my adding the configuration elements for specific entities. Par exemple, l’utilisateur peut associer les sections httpsTransport, reliableSession et security pour créer une liaison fiable et sécurisée basée sur https.For example, the user can combine the httpsTransport section, reliableSession section and the security section to create a reliable and secure https based binding.

Une liaison individuelle définit la pile de messages en spécifiant les éléments de configuration des éléments de la pile suivant leur l'ordre d'apparition dans cette pile.An individual binding defines the message stack by specifying the configuration elements for the stack elements in the order they appear on the stack. Chaque élément définit et configure l'élément de la pile.Each element defines and configures the one element of the stack. Il doit y avoir un seul élément de transport dans chaque liaison personnalisée.There must be one and only one transport element in each custom binding. Sans cet élément, la pile de messagerie est incomplète.Without this element, the messaging stack is incomplete.

L'ordre dans lequel les éléments apparaissent dans la pile est important car il s'agit de l'ordre dans lequel les opérations sont appliquées au message.The order in which elements appear in the stack matters, because it is the order in which operations are applied to the message. Voici l'ordre recommandé des éléments de la pile :The recommended order of stack elements is the following:

  1. Transactions (facultatif)Transactions (optional)

  2. Messagerie fiable (facultatif)Reliable Messaging (optional)

  3. Sécurité (facultatif)Security (optional)

  4. TransportTransport

  5. Encodeur (facultatif)Encoder (optional)

Utilisez une liaison personnalisée lorsque l’une des liaisons fournies par le système ne répond pas aux exigences de votre service.Use a custom binding when one of the system-provided bindings does not meet the requirements of your service. Une liaison personnalisée peut être utilisée, par exemple, pour activer l’utilisation d’un nouveau transport ou d’un nouvel encodeur à un point de terminaison de service.A custom binding could be used, for example, to enable the use of a new transport or a new encoder at a service endpoint.

Une liaison personnalisée est construite à l'aide d'une collection CustomBinding d'éléments de liaison « empilés » dans un ordre spécifique :A custom binding is constructed using one of the CustomBinding from a collection of binding elements that are "stacked" in a specific order:

Le tableau suivant récapitule les options de chaque couche.The following table summarizes the options for each layer.

CoucheLayer OptionsOptions ObligatoireRequired
Flux de transactionTransaction Flow TransactionFlowBindingElement NonNo
FiabilitéReliability ReliableSessionBindingElement NonNo
SécuritéSecurity Symétrique, asymétrique, au niveau du transportSymmetric, Asymmetric, Transport-Level NonNo
Modification de la formeShape Change CompositeDuplexBindingElement NonNo
Mises à niveau de transportTransport Upgrades Flux SSL, flux Windows, programme de résolution d'homologueSSL stream, Windows stream, Peer Resolver NonNo
EncodageEncoding Text, Binary, MTOM, CustomText, Binary, MTOM, Custom OuiYes
TransportTransport TCP, canaux nommés, HTTP, HTTPS, versions de MSMQ, personnaliséTCP, Named Pipes, HTTP, HTTPS, flavors of MSMQ, Custom OuiYes

De plus, vous pouvez définir vos propres éléments de liaison et les insérer entre chacune des couches définies précédentes.In addition, you can define your own binding elements and insert them between any of the preceding defined layers.

Pour une discussion sur l’utilisation d’une liaison personnalisée afin de modifier une liaison fournie par le système, consultez Comment : Personnaliser une liaison fournie par le système.For a discussion on how to use a custom binding to modify a system-provided binding, see How to: Customize a System-Provided Binding.

Voir aussiSee also