<customBinding>
Proporciona el control completo sobre la pila de la mensajería para el usuario.
Jerarquía del esquema
<<system.serviceModel>>
<enlaces>
<customBinding>
Sintaxis
<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
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=" SymmeticKey/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>
Atributos y elementos
En las siguientes secciones se describen atributos, elementos secundarios y elementos primarios
Atributos
Atributo | Descripción |
---|---|
closeTimeout |
Un valor TimeSpan que especifica el intervalo de tiempo del que dispone una operación de cierre para completarse. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:01:00. |
name |
Cadena que contiene el nombre de la configuración del enlace. Este valor es una cadena definida por el usuario que actúa como cadena de identificación para el enlace personalizado. A partir de .NET Framework 4, no es necesario que los enlaces y los comportamientos tengan nombre. Para obtener más información sobre la configuración predeterminada, así como sobre enlaces y comportamientos sin nombre, vea Simplified Configuration y Simplified Configuration for WCF Services. |
openTimeout |
Valor de la estructura TimeSpan que especifica el intervalo de tiempo del que dispone una operación de apertura para completarse. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:01:00. |
receiveTimeout |
Un valor TimeSpan que especifica el intervalo de tiempo del que dispone una operación de recepción para completarse. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:01:00. |
sendTimeout |
Un valor TimeSpan que especifica el intervalo de tiempo del que dispone una operación de envío para completarse. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:01:00. |
Elementos secundarios
Elemento | Descripción |
---|---|
Especifica la mensajería bidireccional para el enlace personalizado. Se usa con los transportes que no permiten comunicaciones dúplex de manera nativa, como, por ejemplo, HTTP. TCP, en cambio, permite comunicaciones dúplex de manera nativa y no requiere el uso de este elemento de enlace para que el servicio devuelva los mensajes a un cliente. El cliente debe exponer una dirección para que el servicio haga contacto y establezca una conexión. El atributo ClientBaseAddress proporciona esta dirección del cliente. Este elemento es del tipo CompositeDuplexElement. |
|
Especifica una resolución de nombre de mismo nivel de protocolo de resolución de nombres de mismo nivel (PNRP). Este elemento es del tipo PnrpPeerResolverElement. |
|
Especifica el valor para la mensajería de confianza de WS. Cuando este elemento se agrega a un enlace personalizado, el canal resultante puede admitir las convicciones de la entrega exactamente una vez. Este elemento es del tipo ReliableSessionElement. |
|
Especifica las opciones de seguridad del enlace personalizado. Este elemento es del tipo SecurityElement. |
|
Especifica la configuración de seguridad para un enlace de secuencia SSL. Este elemento es del tipo SslStreamSecurityElement. |
|
Especifica que el enlace soporta el flujo de transacción, y el protocolo que va a ser utilizado por el atributo transactionProtocol. Este elemento es del tipo TransactionFlowElement. |
|
Especifica las opciones de seguridad de transmisión del enlace personalizado. Este elemento es del tipo WindowsStreamSecurityElement. |
Elementos primarios
Elemento | Descripción |
---|---|
bindings |
Contiene todos los enlaces para las aplicaciones de Windows Communication Foundation. |
Notas
Los enlaces personalizados proporcionan el control completo sobre la pila de mensajería WCF. Los enlaces diseñados especialmente se pueden crear agregando los elementos de configuración para las entidades concretas. Por ejemplo, el usuario puede combinar la sección httpsTransport, sección reliableSession y la sección security para crear https fiables y seguros basados en el enlace.
Un enlace individual define la pila de mensajes mediante la especificación de los elementos de configuración para los elementos de la pila en el orden que aparecen en la pila. Cada elemento define y configura un elemento de la pila. Debe haber un único elemento de transporte en cada enlace personalizado. Sin este elemento, la pila de la mensajería está incompleta.
El orden de aparición de los elementos en la pila es importante, porque es el orden en el que las operaciones se aplican al mensaje. El orden recomendado de elementos de pila es el siguiente:
Transacciones (opcional)
Mensajería de confianza (opcional)
Seguridad (opcional)
Transporte
Codificador (opcional)
Utilice un enlace personalizado cuando uno de los enlaces proporcionados por el sistema no cumpla los requisitos del servicio. Se pudo utilizar un enlace personalizado, por ejemplo, para habilitar el uso de un nuevo transporte o un nuevo codificador en un extremo de servicio.
Un enlace personalizado se construye utilizando uno de CustomBinding de una colección de elementos de enlace que se apilan en un orden específico:
En la parte superior hay un TransactionFlowBindingElement opcional que permite el flujo de transacciones.
A continuación hay un ReliableSessionBindingElement opcional que proporciona una sesión y un mecanismo de orden, como se define en la especificación WS-ReliableMessaging. Esta noción de sesión puede cruzar SOAP y transportar intermediarios.
A continuación hay un elemento de enlace de seguridad opcional que proporciona las características de seguridad como la autorización, autenticación, protección y confidencialidad. Windows Communication Foundation (WCF) proporciona los elementos de enlace de seguridad siguientes:
A continuación están los modelos de mensaje opcionales especificados por elementos de enlace:
Luego están las actualizaciones de transporte opcionales/elementos de enlace de el transporte opcional actualiza/los elementos de enlace auxiliares:
A continuación hay un elemento de enlace de codificación del mensaje requerido. Puede utilizar su propio transporte o utilizar uno de los siguientes enlaces de codificación del mensaje:
En la parte inferior hay un elemento de transporte necesario. Puede usar su propio transporte o uno de los elementos de enlace de transporte proporcionados por Windows Communication Foundation (WCF):
La tabla siguiente resume las opciones de cada capa.
Capa | Opciones | Necesario |
---|---|---|
Flujo de la transacción |
TransactionFlowBindingElement |
No |
Confiabilidad |
ReliableSessionBindingElement |
No |
Seguridad |
Simétrico, Asimétrico, Nivel de transporte |
No |
Cambiar forma |
CompositeDuplexBindingElement |
No |
Actualizaciones de transporte |
Secuencia de SSL, secuencia de Windows, Resolución del mismo nivel |
No |
Codificación |
Texto, binario, MTOM, personalizado |
Sí |
Transporte |
TCP, canalizaciones con nombre, http, HTTPS, versiones de MSMQ, personalizado |
Sí |
Además, puede definir sus propios elementos de enlace e insertarlos entre cualquiera de las capas definidas anteriores.
Para obtener una discusión sobre cómo utilizar un enlace personalizado para modificar un enlace proporcionado por sistema, vea How To: Customize a System-Provided Binding.
1.
Vea también
Referencia
<customBinding>
Binding
BindingElement
BindingsSection
CustomBinding
Conceptos
Otros recursos
Windows Communication Foundation Bindings
Extending Bindings
Custom Bindings
Windows Communication Foundation Bindings
Configuring System-Provided Bindings
Using Bindings to Configure Services and Clients