Partilhar via


<netTcpBinding>

Especifica uma ligação segura, fiável e otimizada, adequada para comunicação entre máquinas. Por defeito, gera uma pilha de comunicação em tempo de execução com o Windows Security para segurança e autenticação de mensagens, TCP para entrega de mensagens e codificação binária de mensagens.

<configuração>
   <system.serviceModel>
     <Encadernações>
       <netTcpBinding>

Sintaxe

<netTcpBinding>
  <binding closeTimeout="TimeSpan"
           hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
           listenBacklog="Integer"
           maxBufferPoolSize="integer"
           maxBufferSize="Integer"
           maxConnections="Integer"
           maxReceivedMessageSize="Integer"
           name="string"
           openTimeout="TimeSpan"
           portSharingEnabled="Boolean"
           receiveTimeout="TimeSpan"
           sendTimeout="TimeSpan"
           transactionFlow="Boolean"
           transactionProtocol="OleTransactions/WSAtomicTransactionOctober2004"
           transferMode="Buffered/Streamed/StreamedRequest/StreamedResponse">
    <reliableSession ordered="Boolean"
                     inactivityTimeout="TimeSpan"
                     enabled="Boolean" />
    <security mode="None/Transport/Message/Both">
      <message clientCredentialType="None/Windows/UserName/Certificate/CardSpace"
               algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15" />
      <transport clientCredentialType="None/Windows/Certificate"
                 protectionLevel="None/Sign/EncryptAndSign" />
    </security>
    <readerQuotas maxArrayLength="Integer"
                  maxBytesPerRead="Integer"
                  maxDepth="Integer"
                  maxNameTableCharCount="Integer"
                  maxStringContentLength="Integer" />
  </binding>
</netTcpBinding>

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.
hostNameComparisonMode Especifica o modo de comparação de nomes de host HTTP usado para analisar URIs. Este atributo é do tipo HostNameComparisonMode, que indica se o nome de host é usado para aceder ao serviço quando corresponde no URI. O valor padrão é StrongWildcard, que ignora o nome do host na correspondência.
listenBacklog Um inteiro positivo que especifica o número máximo de canais à espera de serem aceites no ouvinte. As ligações acima deste limite são colocadas em fila até que o espaço abaixo desse limite fique disponível. O connectionTimeout atributo limita o tempo que um cliente espera para ser ligado antes de lançar uma exceção de ligação. O padrão é 10.
maxBufferPoolSize Um inteiro que especifica o tamanho máximo do buffer pool para esta ligação. O padrão é 512 * 1024 bytes. Muitas partes do Windows Communication Foundation (WCF) utilizam buffers. Criar e destruir buffers sempre que são usados é caro, e a recolha de lixo para buffers também é dispendiosa. Com os buffer pools, podes pegar num buffer do pool, usá-lo e devolvê-lo ao pool quando terminares. Assim, evita-se a sobrecarga na criação e destruição de tampões.
maxBufferSize Um inteiro positivo que especifica o tamanho máximo, em bytes, do buffer usado para armazenar mensagens na memória.

Se o transferMode atributo for igual a Buffered, esse atributo deve ser igual ao maxReceivedMessageSize valor do atributo.

Se o transferMode atributo for igual a Streamed, este atributo não pode ser maior do que o maxReceivedMessageSize valor do atributo, e deve ter pelo menos o tamanho dos cabeçalhos.

O padrão é 65536. Para obter mais informações, consulte MaxBufferSize.
maxConnections Um inteiro que especifica o número máximo de ligações de saída e entrada que o serviço irá criar/aceitar. As ligações de entrada e saída são contabilizadas contra um limite separado especificado por este atributo.

As ligações de entrada acima do limite ficam em fila até que fique disponível um espaço abaixo desse limite.

As ligações de saída acima do limite ficam em fila até que fique disponível um espaço abaixo desse limite.

O padrão é 10.
maxReceivedMessageSize Um inteiro positivo que especifica o tamanho máximo da mensagem, em bytes, incluindo cabeçalhos, que pode ser recebido num canal configurado com esta ligação. O remetente de uma mensagem que ultrapasse este limite receberá uma falha SOAP. O recetor elimina a mensagem e cria uma entrada do evento no registo de rastreamento. O padrão é 65536.
name Uma cadeia que contém o nome da configuração da ligação. Este valor deve ser único porque é usado como identificação da ligação. 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.
portSharingEnabled Um valor booleano que especifica se a partilha de portas TCP está ativada para esta ligação. Se for false, cada binding usa a sua própria porta exclusiva. Esta configuração é relevante apenas para serviços, porque os clientes não são afetados.
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:10:00.
sendTimeout 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.
transactionFlow Um valor booleano que especifica se a ligação suporta transações WS em fluxo. A predefinição é false.
transactionProtocol Especifica o protocolo de transação a ser usado com esta ligação. Os valores válidos são

- OleTransactions
- WSAtomicTransactionOutubro de 2004

O padrão é o OleTransactions. Este atributo é do tipo TransactionProtocol.
transferMode Um TransferMode valor que especifica se as mensagens são armazenadas em buffer, transmitidas em streaming, ou um pedido ou resposta.

Elementos filho

Elemento Description
<Segurança> Define as definições de segurança para a ligação. Este elemento é do tipo NetTcpSecurityElement.
<LeitorQuotas> Define as restrições à complexidade das mensagens SOAP que podem ser processadas pelos endpoints configurados com esta ligação. Este elemento é do tipo XmlDictionaryReaderQuotasElement.
<reliableSession> Especifica se são estabelecidas sessões fiáveis entre os pontos finais do canal.

Elementos pai

Elemento Description
<Encadernações> Este elemento contém uma coleção de encadernações padrão e personalizadas.

Observações

Esta ligação gera por defeito uma pilha de comunicação em tempo de execução, que utiliza segurança de transporte, TCP para entrega de mensagens e codificação binária de mensagens. Esta ligação é uma escolha adequada fornecida pelo sistema Windows Communication Foundation (WCF) para comunicar através de uma intranet.

A configuração padrão para o netTcpBinding é mais rápida do que a configuração fornecida pelo wsHttpBinding, mas destina-se apenas à comunicação WCF. O comportamento de segurança é configurável usando o atributo opcional securityMode . O uso de WS-ReliableMessaging é configurável usando o atributo opcional reliableSessionEnabled . Mas a mensagem fiável está desligada por defeito. De forma mais geral, as ligações HTTP fornecidas pelo sistema, como wsHttpBinding e basicHttpBinding estão configuradas para ativar as coisas por defeito, enquanto a netTcpBinding ligação desativa as coisas por defeito, de modo que tens de optar por obter suporte, por exemplo, para uma das especificações WS-*. Isto significa que a configuração padrão do TCP é mais rápida a trocar mensagens entre extremos do que aquelas configuradas por defeito para as ligações HTTP.

Example

A ligação é especificada nos ficheiros de configuração do cliente e do serviço. O tipo de ligação é especificado no binding atributo do <endpoint> elemento. Se quiser configurar a ligação netTcpBinding e alterar algumas das suas definições, é necessário definir uma configuração de binding. O endpoint deve referenciar a configuração de ligação com um bindingConfiguration atributo. No exemplo seguinte, está definida uma configuração de ligação.

<services>
  <service name="Microsoft.ServiceModel.Samples.CalculatorService"
           behaviorConfiguration="CalculatorServiceBehavior">
    ...
    <endpoint address=""
              binding="netTcpBinding"
              contract="Microsoft.ServiceModel.Samples.ICalculator" />
    ...
  </service>
</services>
<bindings>
  <netTcpBinding>
    <binding closeTimeout="00:01:00"
             openTimeout="00:01:00"
             receiveTimeout="00:10:00"
             sendTimeout="00:01:00"
             transactionFlow="false"
             transferMode="Buffered"
             transactionProtocol="OleTransactions"
             hostNameComparisonMode="StrongWildcard"
             listenBacklog="10"
             maxBufferPoolSize="524288"
             maxBufferSize="65536"
             maxConnections="10"
             maxReceivedMessageSize="65536">
      <readerQuotas maxDepth="32"
                    maxStringContentLength="8192"
                    maxArrayLength="16384"
                    maxBytesPerRead="4096"
                    maxNameTableCharCount="16384" />
      <reliableSession ordered="true"
                       inactivityTimeout="00:10:00"
                       enabled="false" />
      <security mode="Transport">
        <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
      </security>
    </binding>
  </netTcpBinding>
</bindings>

Consulte também