Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
Proporciona control total sobre la pila de mensajería para el usuario.
<configuración>
<system.serviceModel>
<Enlaces>
<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>
Atributos y elementos
En las secciones siguientes se describen los atributos, los elementos secundarios y los elementos primarios.
Attributes
| Atributo | Description |
|---|---|
| closeTimeout | Valor TimeSpan que especifica el intervalo de tiempo proporcionado para que se complete una operación de cierre. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:01:00. |
| nombre | Cadena que contiene el nombre de 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, los enlaces y los comportamientos no son necesarios para tener un nombre. Para obtener más información sobre la configuración predeterminada y los enlaces y comportamientos sin nombre, vea Configuración simplificada y Configuración simplificada para servicios WCF. |
| openTimeout | Valor TimeSpan que especifica el intervalo de tiempo proporcionado para que se complete una operación abierta. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:01:00. |
| receiveTimeout | Valor TimeSpan que especifica el intervalo de tiempo proporcionado para que se complete una operación de recepción. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:01:00. |
| sendTimeout | Valor TimeSpan que especifica el intervalo de tiempo proporcionado para que se complete una operación de envío. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:01:00. |
Elementos secundarios
| Elemento | Description |
|---|---|
| <compositeDuplex> | Especifica la mensajería bidireccional al enlace personalizado. Se usa con transportes que no permiten comunicaciones dúplex de forma nativa, por ejemplo, HTTP. TCP, por el contrario, permite comunicaciones dúplex de forma nativa y no requiere el uso de este elemento de enlace para que el servicio devuelva mensajes a un cliente. El cliente debe exponer una dirección para que el servicio haga contacto y establezca una conexión. El atributo proporciona esta dirección de ClientBaseAddress cliente.Este elemento es de tipo CompositeDuplexElement. |
| <pnrpPeerResolver> | Especifica un solucionador de nombres del mismo nivel del Protocolo de resolución de nombres del mismo nivel (PNRP). Este elemento es de tipo PnrpPeerResolverElement. |
| <reliableSession> | Especifica la configuración de WS-Reliable Messaging. Cuando este elemento se agrega a un enlace personalizado, el canal resultante puede admitir garantías de entrega exactamente una vez. Este elemento es de tipo ReliableSessionElement. |
| <seguridad> | Especifica las opciones de seguridad del enlace personalizado. Este elemento es de tipo SecurityElement. |
| <sslStreamSecurity> | Especifica la configuración de seguridad de un enlace de flujo SSL. Este elemento es de tipo SslStreamSecurityElement. |
| <transactionFlow> | Especifica que el enlace admite el flujo de transacciones y el protocolo que va a usar el transactionProtocol atributo . Este elemento es de tipo TransactionFlowElement. |
| <windowsStreamSecurity> | Especifica las opciones para la seguridad de streaming del enlace personalizado. Este elemento es de tipo WindowsStreamSecurityElement. |
Elementos primarios
| Elemento | Description |
|---|---|
| bindings | Contiene todos los enlaces para las aplicaciones de Windows Communication Foundation. |
Observaciones
Los enlaces personalizados proporcionan control total sobre la pila de mensajería WCF. Se pueden crear enlaces personalizados especiales para agregar los elementos de configuración para entidades específicas. Por ejemplo, el usuario puede combinar la httpsTransport sección, reliableSession la sección y la security sección para crear un enlace basado en HTTPS confiable y seguro.
Un enlace individual define la pila de mensajes especificando los elementos de configuración de los elementos de pila en el orden en que aparecen en la pila. Cada elemento define y configura el elemento uno de la pila. Debe haber uno y solo un elemento de transporte en cada enlace personalizado. Sin este elemento, la pila de mensajería está incompleta.
El orden en el que aparecen los elementos en la pila es importante, ya que es el orden en el que se aplican las operaciones al mensaje. El orden recomendado de los elementos de pila es el siguiente:
Transacciones (opcional)
Reliable Messaging (opcional)
Seguridad (opcional)
Transport
Codificador (opcional)
Use un enlace personalizado cuando uno de los enlaces proporcionados por el sistema no cumpla los requisitos del servicio. Se podría usar un enlace personalizado, por ejemplo, para habilitar el uso de un nuevo transporte o un nuevo codificador en un punto de conexión de servicio.
Un enlace personalizado se construye mediante una de las CustomBinding de una colección de elementos de enlace que se "apilan" en un orden específico:
En la parte superior es opcional TransactionFlowBindingElement que permite el flujo de transacciones.
A continuación, es opcional ReliableSessionBindingElement que proporciona un mecanismo de sesión y ordenación tal como se define en la especificación de WS-ReliableMessaging. Esta noción de una sesión puede cruzar SOAP e intermediarios de transporte.
A continuación, se muestra un elemento de enlace de seguridad opcional que proporciona características de seguridad como autorización, autenticación, protección y confidencialidad. Windows Communication Foundation (WCF) proporciona los siguientes elementos de enlace de seguridad:
A continuación, se muestran los patrones de mensaje opcionales especificados por los elementos de enlace:
A continuación, se muestran los elementos de enlace de actualizaciones o asistentes de transporte opcionales:
A continuación, se trata de un elemento de enlace de codificación de mensajes necesario. Puede usar su propio transporte o usar uno de los siguientes enlaces de codificación de mensajes:
En la parte inferior hay un elemento de transporte necesario. Puedes usar tu propio transporte o usar uno de los elementos de enlace de transporte proporcionados por Windows Communication Foundation (WCF):
En la tabla siguiente se resumen las opciones de cada capa.
| Nivel | Options | Obligatorio |
|---|---|---|
| Flujo de transacciones | TransactionFlowBindingElement | No |
| Reliability | ReliableSessionBindingElement | No |
| Security | Simétrico, asimétrico, Transport-Level | No |
| Cambio de forma | CompositeDuplexBindingElement | No |
| Actualizaciones de transporte | Secuencia SSL, secuencia de Windows, Resolución del mismo nivel | No |
| Encoding | Texto, binario, MTOM, personalizado | Sí |
| Transport | TCP, Canalizaciones con nombre, HTTP, HTTPS, tipos 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 explicación sobre cómo usar un enlace personalizado para modificar un enlace proporcionado por el sistema, vea How to: Customize a System-Provided Binding.