Compartilhar via


<Nettcpbinding>

Especifica uma associação segura, confiável e otimizada adequada para comunicação entre máquinas. Por padrão, ele gera uma pilha de comunicação de runtime com o Windows Security para segurança e autenticação de mensagens, TCP para entrega de mensagens e codificação de mensagens binárias.

<configuração>
   <system.serviceModel>
     <Ligaçõ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 que uma operação de fechamento seja concluída. Esse valor deve ser maior ou igual a Zero. O padrão é 00:01:00.
hostNameComparisonMode Especifica o modo de comparação de nome de host HTTP usado para analisar URIs. Esse atributo é do tipo HostNameComparisonMode, que indica se o nome do host é usado para alcançar o serviço ao corresponder 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 aguardando para serem aceitos no ouvinte. Conexões acima desse limite são enfileiradas até que o espaço abaixo do limite fique disponível. O connectionTimeout atributo limita o tempo que um cliente aguardará para ser conectado antes de gerar uma exceção de conexão. O padrão é 10.
maxBufferPoolSize Um inteiro que especifica o tamanho máximo do pool de buffers para essa associação. O padrão é 512 * 1024 bytes. Muitas partes do Windows Communication Foundation (WCF) usam buffers. Criar e destruir buffers sempre que eles são usados é caro e a coleta de lixo para buffers também é cara. Com pools de buffers, você pode pegar um buffer do pool, usá-lo e devolvê-lo ao pool assim que terminar. Portanto, a sobrecarga na criação e destruição de buffers é evitada.
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 deverá ser igual ao valor do maxReceivedMessageSize atributo.

Se o transferMode atributo for igual a Streamed, esse atributo não poderá ser mais do que o valor do maxReceivedMessageSize atributo e deverá 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 conexões de saída e de entrada que o serviço criará/aceitará. As conexões de entrada e saída são contadas em relação a um limite separado especificado por esse atributo.

Conexões de entrada acima do limite são enfileiradas até que um espaço abaixo do limite fique disponível.

Conexões de saída acima do limite são enfileiradas até que um espaço abaixo do limite fique disponível.

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 em um canal configurado com essa associação. O remetente de uma mensagem que excede esse limite receberá uma falha SOAP. O receptor descarta a mensagem e cria uma entrada do evento no log de rastreamento. O padrão é 65536.
name Uma cadeia de caracteres que contém o nome de configuração da associação. Esse valor deve ser exclusivo porque é usado como uma identificação para a associação. 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.
portSharingEnabled Um valor booliano que especifica se o compartilhamento de porta TCP está habilitado para essa conexão. Se isso for false, cada associação usará sua própria porta exclusiva. Essa configuração é relevante apenas para os serviços, pois 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 recebimento. Esse 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 a conclusão de uma operação de envio. Esse valor deve ser maior ou igual a Zero. O padrão é 00:01:00.
transactionFlow Um valor booliano que especifica se a associação dá suporte a WS-Transactions em fluxo. O padrão é false.
transactionProtocol Especifica o protocolo de transação a ser usado com essa associação. Valores válidos são

-Oletransactions
- WSAtomicTransactionOctober2004

O padrão é OleTransactions. Esse atributo é do tipo TransactionProtocol.
transferMode Um TransferMode valor que especifica se as mensagens são armazenadas em buffer ou transmitidas ou uma solicitação ou resposta.

Elementos filho

Elemento Description
<segurança> Define as configurações de segurança para a associação. Esse elemento é do tipo NetTcpSecurityElement.
<Readerquotas> Define as restrições sobre a complexidade das mensagens SOAP que podem ser processadas por pontos de extremidade configurados com essa associação. Esse elemento é do tipo XmlDictionaryReaderQuotasElement.
<Reliablesession> Especifica se se sessões confiáveis são estabelecidas entre pontos de extremidade de canal.

Elementos pai

Elemento Description
<Ligações> Esse elemento contém uma coleção de associações padrão e personalizadas.

Observações

Essa associação gera uma pilha de comunicação de runtime por padrão, que usa segurança de transporte, TCP para entrega de mensagens e codificação de mensagem binária. Essa associação é uma opção apropriada fornecida pelo sistema do Windows Communication Foundation (WCF) para se comunicar por meio 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 as mensagens confiáveis estão desativadas por padrão. De modo mais geral, as associações fornecidas pelo sistema HTTP, como wsHttpBinding e basicHttpBinding são configuradas para ativar as coisas por padrão, enquanto a netTcpBinding associação desativa as coisas por padrão para que você tenha que aceitar para obter suporte, por exemplo, para uma das especificações do WS-*. Isso significa que a configuração padrão para TCP é mais rápida na troca de mensagens entre pontos de extremidade do que aquelas configuradas para as associações HTTP por padrão.

Example

A associação é especificada nos arquivos de configuração para o cliente e o serviço. O tipo de associação é especificado no binding atributo do <endpoint> elemento. Se você quiser configurar a associação netTcpBinding e alterar algumas de suas configurações, será necessário definir uma configuração de associação. O ponto de extremidade deve referenciar a configuração de associação com um bindingConfiguration atributo. No exemplo a seguir, uma configuração de associação é definida.

<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