Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Fournit un contrôle total sur la pile de messagerie pour l’utilisateur.
<Configuration>
<system.serviceModel>
<Liaisons>
<customBinding>
Syntaxe
<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éments
Les sections suivantes décrivent les attributs, les éléments enfants et les éléments parents
Attributes
| Caractéristique | Descriptif |
|---|---|
| closeTimeout | Valeur TimeSpan qui spécifie l’intervalle de temps fourni pour qu’une opération de fermeture se termine. Cette valeur doit être supérieure ou égale à Zero. La valeur par défaut est 00:01:00. |
| nom | Chaîne qui contient le nom de configuration de la liaison. Cette valeur est une chaîne définie par l’utilisateur qui agit comme chaîne d’identification pour la liaison personnalisée. À compter de .NET Framework 4, les liaisons et les comportements ne sont pas nécessaires pour avoir un nom. Pour plus d’informations sur la configuration par défaut et les liaisons sans nom et les comportements, consultez Configuration simplifiée et Configuration simplifiée pour les services WCF. |
| openTimeout | Valeur TimeSpan qui spécifie l’intervalle de temps fourni pour qu’une opération ouverte se termine. Cette valeur doit être supérieure ou égale à Zero. La valeur par défaut est 00:01:00. |
| receiveTimeout | Valeur TimeSpan qui spécifie l’intervalle de temps fourni pour qu’une opération de réception se termine. Cette valeur doit être supérieure ou égale à Zero. La valeur par défaut est 00:01:00. |
| sendTimeout | Valeur TimeSpan qui spécifie l’intervalle de temps fourni pour qu’une opération d’envoi se termine. Cette valeur doit être supérieure ou égale à Zero. La valeur par défaut est 00:01:00. |
Éléments enfants
| Élément | Descriptif |
|---|---|
| <compositeDuplex> | Spécifie la messagerie bidirectionnelle à la liaison personnalisée. Il est utilisé avec des transports qui n’autorisent pas les communications duplex en mode natif, par exemple HTTP. TCP, en revanche, autorise les communications duplex en mode natif et ne nécessite pas l’utilisation de cet élément de liaison pour que le service renvoie des messages à un client. Le client doit exposer une adresse pour que le service effectue un contact et établit une connexion. Cette adresse cliente est fournie par l’attribut ClientBaseAddress .Cet élément est de type CompositeDuplexElement. |
| <pnrpPeerResolver> | Spécifie un programme de résolution de noms d’homologue PNRP (Peer Name Resolution Protocol). Cet élément est de type PnrpPeerResolverElement. |
| <reliableSession> | Spécifie le paramètre de messagerie WS-Reliable. Lorsque cet élément est ajouté à une liaison personnalisée, le canal résultant peut prendre en charge des garanties de remise exactement une fois. Cet élément est de type ReliableSessionElement. |
| <sécurité> | Spécifie les options de sécurité de la liaison personnalisée. Cet élément est de type SecurityElement. |
| <sslStreamSecurity> | Spécifie les paramètres de sécurité d’une liaison de flux SSL. Cet élément est de type SslStreamSecurityElement. |
| <transactionFlow> | Spécifie que la liaison prend en charge le flux de transactions et le protocole à utiliser par l’attribut transactionProtocol . Cet élément est de type TransactionFlowElement. |
| <windowsStreamSecurity> | Spécifie les options de sécurité de streaming de la liaison personnalisée. Cet élément est de type WindowsStreamSecurityElement. |
Éléments parents
| Élément | Descriptif |
|---|---|
| bindings | Contient toutes les liaisons pour les applications Windows Communication Foundation. |
Remarques
Les liaisons personnalisées fournissent un contrôle total sur la pile de messagerie WCF. Des liaisons personnalisées spéciales peuvent être créées pour créer des éléments de configuration pour des entités spécifiques. Par exemple, l’utilisateur peut combiner la httpsTransport section, reliableSession la section et la security section pour créer une liaison https fiable et sécurisée.
Une liaison individuelle définit la pile de messages en spécifiant les éléments de configuration des éléments de pile dans l’ordre dans lequel ils apparaissent sur la pile. Chaque élément définit et configure l’un des éléments de la pile. Il doit y avoir un seul élément de transport dans chaque liaison personnalisée. Sans cet élément, la pile de messagerie est incomplète.
L’ordre dans lequel les éléments apparaissent dans la pile importe, car il s’agit de l’ordre dans lequel les opérations sont appliquées au message. L’ordre recommandé des éléments de pile est le suivant :
Transactions (facultatif)
Reliable Messaging (facultatif)
Sécurité (facultatif)
Transport
Encodeur (facultatif)
Utilisez une liaison personnalisée quand l’une des liaisons fournies par le système ne répond pas aux exigences de votre service. Une liaison personnalisée peut être utilisée, par exemple, pour activer l’utilisation d’un nouveau transport ou d’un nouvel encodeur sur un point de terminaison de service.
Une liaison personnalisée est construite à l’aide de l’une CustomBinding des collections d’éléments de liaison qui sont « empilés » dans un ordre spécifique :
En haut, il s’agit d’un facultatif TransactionFlowBindingElement qui autorise le flux de transactions.
Ensuite, il s’agit d’un mécanisme facultatif ReliableSessionBindingElement qui fournit un mécanisme de session et de classement tel que défini dans la spécification WS-ReliableMessaging. Cette notion d’une session peut traverser les intermédiaires SOAP et de transport.
Ensuite, il s’agit d’un élément de liaison de sécurité facultatif qui fournit des fonctionnalités de sécurité telles que l’autorisation, l’authentification, la protection et la confidentialité. Les éléments de liaison de sécurité suivants sont fournis par Windows Communication Foundation (WCF) :
Voici les modèles de message facultatifs spécifiés par les éléments de liaison :
Voici les éléments de liaison facultatifs des mises à niveau/helpers de transport :
Ensuite, il s’agit d’un élément de liaison d’encodage de message requis. Vous pouvez utiliser votre propre transport ou utiliser l’une des liaisons d’encodage de message suivantes :
En bas est un élément de transport requis. Vous pouvez utiliser votre propre transport ou utiliser l’un des éléments de liaison de transport fournis par Windows Communication Foundation (WCF) :
Le tableau suivant récapitule les options de chaque couche.
| Couche | Options | Obligatoire |
|---|---|---|
| Flux de transactions | TransactionFlowBindingElement | Non |
| Reliability | ReliableSessionBindingElement | Non |
| Security | Symétrique, asymétrique, Transport-Level | Non |
| Modification de la forme | CompositeDuplexBindingElement | Non |
| Mises à niveau de transport | Flux SSL, flux Windows, Programme de résolution d’homologue | Non |
| Codage | Texte, Binaire, MTOM, Personnalisé | Oui |
| Transport | TCP, canaux nommés, HTTP, HTTPS, versions de MSMQ, personnalisées | Oui |
En outre, vous pouvez définir vos propres éléments de liaison et les insérer entre l’une des couches définies précédentes.
Pour une discussion sur l’utilisation d’une liaison personnalisée pour modifier une liaison fournie par le système, consultez Guide pratique pour personnaliser une liaison System-Provided.