Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Fornece controle total sobre a pilha de mensagens para o usuário.
<configuração>
<system.serviceModel>
<Ligações>
<Custombinding>
Sintaxe
<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 e elementos
As seções a seguir descrevem atributos, elementos filho e elementos pai
Attributes
| Attribute | Description |
|---|---|
| closeTimeout | Um TimeSpan valor que especifica o intervalo de tempo fornecido para que uma operação de fechamento seja concluída. Esse valor deve ser maior ou igual a Zero. O padrão é 00:01:00. |
| nome | Uma cadeia de caracteres que contém o nome de configuração da associação. Esse valor é uma cadeia de caracteres definida pelo usuário que atua como a cadeia de caracteres de identificação para a associação personalizada. A partir do .NET Framework 4, associações e comportamentos não são necessários para ter um nome. Para obter mais informações sobre configuração padrão e associações e comportamentos sem nome, consulte Configuração simplificada e configuração simplificada para serviços WCF. |
| openTimeout | Um TimeSpan valor que especifica o intervalo de tempo fornecido para uma operação aberta ser concluída. Esse valor deve ser maior ou igual a Zero. O padrão é 00:01:00. |
| receiveTimeout | Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação de recebimento. Esse valor deve ser maior ou igual a Zero. O padrão é 00:01:00. |
| sendTimeout | Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação de envio. Esse valor deve ser maior ou igual a Zero. O padrão é 00:01:00. |
Elementos filho
| Elemento | Description |
|---|---|
| <compositeDuplex> | Especifica mensagens bidirecionais para a associação personalizada. Ele é usado com transportes que não permitem comunicações duplex nativamente, por exemplo, HTTP. O TCP, por outro lado, permite comunicações duplex nativamente e não requer o uso desse elemento de associação para que o serviço envie mensagens de volta para um cliente. O cliente deve expor um endereço para que o serviço faça contato e estabeleça uma conexão. Esse endereço do cliente é fornecido pelo ClientBaseAddress atributo.Esse elemento é do tipo CompositeDuplexElement. |
| <pnrpPeerResolver> | Especifica um resolvedor de nome de par PNRP (Peer Name Resolution Protocol). Esse elemento é do tipo PnrpPeerResolverElement. |
| <Reliablesession> | Especifica a configuração do WS-Reliable Messaging. Quando esse elemento é adicionado a uma associação personalizada, o canal resultante pode dar suporte a garantias de entrega exatamente uma vez. Esse elemento é do tipo ReliableSessionElement. |
| <segurança> | Especifica as opções de segurança da associação personalizada. Esse elemento é do tipo SecurityElement. |
| <sslStreamSecurity> | Especifica as configurações de segurança para uma associação de fluxo SSL. Esse elemento é do tipo SslStreamSecurityElement. |
| <Transactionflow> | Especifica que a associação dá suporte ao fluxo de transação e ao protocolo a ser usado pelo transactionProtocol atributo. Esse elemento é do tipo TransactionFlowElement. |
| <windowsStreamSecurity> | Especifica as opções de segurança de streaming da associação personalizada. Esse elemento é do tipo WindowsStreamSecurityElement. |
Elementos pai
| Elemento | Description |
|---|---|
| bindings | Contém todas as associações para aplicativos do Windows Communication Foundation. |
Observações
As associações personalizadas fornecem controle total sobre a pilha de mensagens do WCF. Associações personalizadas especiais podem ser criadas adicionando os elementos de configuração para entidades específicas. Por exemplo, o usuário pode combinar a httpsTransport seção, reliableSession a seção e a security seção para criar uma associação baseada em https confiável e segura.
Uma associação individual define a pilha de mensagens especificando os elementos de configuração para os elementos de pilha na ordem em que eles aparecem na pilha. Cada elemento define e configura o único elemento da pilha. Deve haver um e apenas um elemento de transporte em cada associação personalizada. Sem esse elemento, a pilha de mensagens está incompleta.
A ordem na qual os elementos aparecem na pilha é importante, porque é a ordem na qual as operações são aplicadas à mensagem. A ordem recomendada de elementos de pilha é a seguinte:
Transações (opcional)
Reliable Messaging (opcional)
Segurança (opcional)
Transport
Codificador (opcional)
Use uma associação personalizada quando uma das associações fornecidas pelo sistema não atender aos requisitos do serviço. Uma associação personalizada pode ser usada, por exemplo, para habilitar o uso de um novo transporte ou de um novo codificador em um ponto de extremidade de serviço.
Uma associação personalizada é construída usando uma de CustomBinding uma coleção de elementos de associação que são "empilhados" em uma ordem específica:
Na parte superior está um opcional TransactionFlowBindingElement que permite transações de fluxo.
Em seguida, é um opcional ReliableSessionBindingElement que fornece um mecanismo de sessão e ordenação, conforme definido na especificação WS-ReliableMessaging. Essa noção de uma sessão pode atravessar SOAP e transportar intermediários.
Em seguida, há um elemento opcional de associação de segurança que fornece recursos de segurança, como autorização, autenticação, proteção e confidencialidade. Os seguintes elementos de associação de segurança são fornecidos pelo WCF (Windows Communication Foundation):
Em seguida, estão os padrões de mensagem opcionais especificados pelos elementos de associação:
Em seguida, estão os elementos de associação de upgrades/auxiliares de transporte opcionais:
Em seguida, há um elemento de associação de codificação de mensagem necessário. Você pode usar seu próprio transporte ou usar uma das seguintes associações de codificação de mensagens:
Na parte inferior há um elemento de transporte necessário. Você pode usar seu próprio transporte ou usar um dos elementos de associação de transporte fornecidos pelo WCF (Windows Communication Foundation):
A tabela a seguir resume as opções para cada camada.
| Camada | Opções | Obrigatório |
|---|---|---|
| Fluxo de Transação | TransactionFlowBindingElement | Não |
| Fiabilidade | ReliableSessionBindingElement | Não |
| Segurança | Simétrico, assimétrico, Transport-Level | Não |
| Alteração de forma | CompositeDuplexBindingElement | Não |
| Atualizações de transporte | Fluxo SSL, fluxo do Windows, Resolvedor de Pares | Não |
| Codificação | Texto, Binário, MTOM, Personalizado | Yes |
| Transport | TCP, Pipes Nomeados, HTTP, HTTPS, sabores de MSMQ, Personalizado | Yes |
Além disso, você pode definir seus próprios elementos de associação e inseri-los entre qualquer uma das camadas definidas anteriormente.
Para obter uma discussão sobre como usar uma associação personalizada para modificar uma associação fornecida pelo sistema, consulte Como personalizar uma associação de System-Provided.