Partilhar via


<customBinding>

Proporciona controlo total sobre a pilha de mensagens para o utilizador.

<configuração>
   <system.serviceModel>
     <Encadernaçõ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 a conclusão de uma operação de fechamento. Este valor deve ser maior ou igual a Zero. O padrão é 00:01:00.
nome Uma cadeia que contém o nome da configuração da ligação. Este valor é uma cadeia definida pelo utilizador que atua como cadeia de identificação para a ligação personalizada. A partir do .NET Framework 4, os bindings e comportamentos não são obrigatórios de ter um nome. Para mais informações sobre configuração padrão e ligaçõ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 previsto para que uma operação aberta seja concluída. Este 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 receção. Este valor deve ser maior ou igual a Zero. O padrão é 00:01:00.
enviarTempo de espera Um TimeSpan valor que especifica o intervalo de tempo fornecido para que uma operação de envio seja concluída. Este valor deve ser maior ou igual a Zero. O padrão é 00:01:00.

Elementos filho

Elemento Description
<CompositeDuplex> Especifica mensagens bidirecionais para a ligação personalizada. É usado com transportes que não permitem comunicações duplex nativas, por exemplo, HTTP. O TCP, por outro lado, permite comunicações duplex nativamente e não requer o uso deste elemento de ligação para que o serviço envie mensagens de volta a um cliente.

O cliente deve expor uma morada para que o serviço possa entrar em contacto e estabelecer uma ligação. Este endereço do cliente é fornecido pelo ClientBaseAddress atributo.

Este elemento é do tipo CompositeDuplexElement.
<pnrpPeerResolver> Especifica um resolvedor de nomes de pares do Protocolo de Resolução de Nomes de Pares (PNRP). Este elemento é do tipo PnrpPeerResolverElement.
<reliableSession> Especifica a definição para WS-Reliable Mensagens. Quando este elemento é adicionado a uma ligação personalizada, o canal resultante pode suportar garantias de entrega exatamente uma vez. Este elemento é do tipo ReliableSessionElement.
<Segurança> Especifica as opções de segurança da ligação personalizada. Este elemento é do tipo SecurityElement.
<sslStreamSecurity> Especifica as definições de segurança para uma ligação de fluxo SSL. Este elemento é do tipo SslStreamSecurityElement.
<transactionFlow> Especifica que a ligação suporta o fluxo de transações e o protocolo a ser usado pelo transactionProtocol atributo. Este elemento é do tipo TransactionFlowElement.
<windowsStreamSecurity> Especifica as opções para a segurança do streaming da ligação personalizada. Este elemento é do tipo WindowsStreamSecurityElement.

Elementos Principais

Elemento Description
bindings Contém todas as ligações para aplicações Windows Communication Foundation.

Observações

As ligações personalizadas fornecem controlo total sobre a pilha de mensagens WCF. Podem ser criadas ligações especiais e personalizadas adicionando elementos de configuração para entidades específicas. Por exemplo, o utilizador pode combinar a httpsTransport secção, reliableSession a secção e a security secção para criar uma ligação baseada em https fiável e segura.

Uma ligação individual define a pilha de mensagens especificando os elementos de configuração dos elementos da pilha pela ordem em que aparecem na pilha. Cada elemento define e configura um elemento da pilha. Deve haver um e apenas um elemento de transporte em cada ligação personalizada. Sem este elemento, a pilha de mensagens fica incompleta.

A ordem em que os elementos aparecem na pilha importa, pois é a ordem em que as operações são aplicadas à mensagem. A ordem recomendada dos elementos da pilha é a seguinte:

  1. Transações (opcionais)

  2. Mensagens Fiáveis (opcional)

  3. Segurança (opcional)

  4. Transport

  5. Codificador (opcional)

Use uma ligação personalizada quando uma das ligações fornecidas pelo sistema não cumprir os requisitos do seu serviço. Uma ligação personalizada poderia ser usada, por exemplo, para permitir a utilização de um novo transporte ou de um novo codificador num endpoint de serviço.

Uma ligação personalizada é construída usando um dos CustomBinding elementos de ligação de uma coleção de elementos de ligação que são "empilhados" numa ordem específica:

A tabela seguinte resume as opções para cada camada.

Camada Opções Obrigatório
Fluxo de transações TransactionFlowBindingElement Não
Reliability ReliableSessionBindingElement Não
Segurança Simétrico, assimétrico, Transport-Level Não
Mudança de Forma CompositeDuplexBindingElement Não
Melhorias nos Transportes Stream SSL, stream Windows, Peer Resolver Não
Codificação Texto, binário, MTOM, personalizado Yes
Transport TCP, Named Pipes, HTTP, HTTPS, versões de MSMQ, Personalizado Yes

Além disso, pode definir os seus próprios elementos de ligação e inseri-los entre qualquer uma das camadas definidas anteriormente.

Para uma discussão sobre como usar uma ligação personalizada para modificar uma ligação fornecida pelo sistema, veja Como: Personalizar uma Ligação System-Provided.

Consulte também