<netTcpBinding>
Especifica um enlace seguro, fiável e otimizado adequado para comunicação entre máquinas. Por predefinição, gera uma pilha de comunicação de runtime com Segurança do Windows para segurança e autenticação de mensagens, TCP para entrega de mensagens e codificação de mensagens binárias.
<configuração>
<system.serviceModel>
<enlaces>
<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 secções seguintes descrevem atributos, elementos subordinados e elementos principais.
Atributos
Atributo | Descrição |
---|---|
closeTimeout |
Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação de fecho. Este valor deve ser maior ou igual a Zero. A predefinição é 00:01:00. |
hostNameComparisonMode |
Especifica o modo de comparação de nomes de anfitrião HTTP utilizado para analisar URIs. Este atributo é do tipo HostNameComparisonMode, que indica se o nome do anfitrião é utilizado para aceder ao serviço quando corresponde ao URI. O valor predefinido é StrongWildcard, que ignora o nome do anfitrião na correspondência. |
listenBacklog |
Um número inteiro positivo que especifica o número máximo de canais à espera de serem aceites no serviço de escuta. As ligações que ultrapassem este limite são em fila de espera até que o espaço abaixo do limite fique disponível. O connectionTimeout atributo limita o tempo que um cliente aguardará para ser ligado antes de lançar uma exceção de ligação. A predefinição é 10. |
maxBufferPoolSize |
Um número inteiro que especifica o tamanho máximo do conjunto de memória intermédia para este enlace. A predefinição é 512 * 1024 bytes. Muitas partes do Windows Communication Foundation (WCF) utilizam memórias intermédias. A criação e destruição de memórias intermédias sempre que são utilizadas é dispendiosa e a libertação da memória intermédia também é dispendiosa. Com os conjuntos de memória intermédia, pode tirar uma memória intermédia do conjunto, utilizá-la e devolvê-la ao conjunto assim que terminar. Assim, evita-se a sobrecarga na criação e destruição de memórias intermédias. |
maxBufferSize |
Um número inteiro positivo que especifica o tamanho máximo, em bytes, da memória intermédia utilizada para armazenar mensagens na memória. Se o transferMode atributo for igual a Buffered , este atributo deve ser igual ao valor do maxReceivedMessageSize atributo.Se o transferMode atributo for igual a Streamed , este atributo não pode ser superior ao valor do maxReceivedMessageSize atributo e deve ter, pelo menos, o tamanho dos cabeçalhos.A predefinição é 65536. Para obter mais informações, consulte MaxBufferSize. |
maxConnections |
Um número inteiro que especifica o número máximo de ligações de saída e de entrada que o serviço irá criar/aceitar. As ligações de entrada e saída são contabilizadas com base num limite separado especificado por este atributo. As ligações de entrada que excedam o limite são em fila de espera até ficar disponível um espaço abaixo do limite. As ligações de saída que excedam o limite são em fila de espera até que um espaço abaixo do limite fique disponível. A predefinição é 10. |
maxReceivedMessageSize |
Um número inteiro positivo que especifica o tamanho máximo da mensagem, em bytes, incluindo cabeçalhos, que pode ser recebido num canal configurado com este enlace. O remetente de uma mensagem que excede este limite receberá uma falha SOAP. O recetor remove a mensagem e cria uma entrada do evento no registo de rastreio. A predefinição é 65536. |
name |
Uma cadeia que contém o nome de configuração do enlace. Este valor deve ser exclusivo porque é utilizado como uma identificação para o enlace. A partir do .NET Framework 4, os enlaces e comportamentos não têm de ter um nome. Para obter mais informações sobre a configuração predefinida e os enlaces e comportamentos sem nome, veja Configuração Simplificada e Configuração Simplificada para os Serviços WCF. |
openTimeout |
Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação aberta. Este valor deve ser maior ou igual a Zero. A predefiniçã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 enlace utiliza a sua própria porta exclusiva. Esta definição é relevante apenas para os 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. A predefiniçã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. Este valor deve ser maior ou igual a Zero. A predefinição é 00:01:00. |
transactionFlow |
Um valor booleano que especifica se o enlace suporta WS-Transactions em fluxo. A predefinição é false . |
transactionProtocol |
Especifica o protocolo de transação a utilizar com este enlace. Os valores válidos são - OleTransactions - WSAtomicTransactionOctober2004 A predefinição é OleTransactions. Este atributo é do tipo TransactionProtocol. |
transferMode |
Um TransferMode valor que especifica se as mensagens são transmitidas em memória intermédia ou transmitidas em fluxo ou um pedido ou resposta. |
Elementos subordinados
Elemento | Descrição |
---|---|
<segurança> | Define as definições de segurança do enlace. Este elemento é do tipo NetTcpSecurityElement. |
<readerQuotas> | Define as restrições sobre a complexidade das mensagens SOAP que podem ser processadas por pontos finais configurados com este enlace. Este elemento é do tipo XmlDictionaryReaderQuotasElement. |
<reliableSession> | Especifica se são estabelecidas sessões fiáveis entre pontos finais de canal. |
Elementos principais
Elemento | Descrição |
---|---|
<enlaces> | Este elemento contém uma coleção de enlaces padrão e personalizados. |
Observações
Este enlace gera uma pilha de comunicação de tempo de execução por predefinição, que utiliza segurança de transporte, TCP para entrega de mensagens e uma codificação de mensagens binárias. Este enlace é uma opção adequada fornecida pelo sistema do Windows Communication Foundation (WCF) para comunicar através de uma Intranet.
A configuração predefinida 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 com o atributo opcional securityMode
. A utilização de WS-ReliableMessaging é configurável com o atributo opcional reliableSessionEnabled
. Mas as mensagens fiáveis estão desativadas por predefinição. De uma forma mais geral, os enlaces fornecidos pelo sistema HTTP, como wsHttpBinding
e basicHttpBinding
estão configurados para ativar itens por predefinição, ao passo que o netTcpBinding
enlace desativa por predefinição para que tenha de optar ativamente por receber suporte, por exemplo, para uma das especificações WS-*. Isto significa que a configuração predefinida para TCP é mais rápida na troca de mensagens entre pontos finais do que as configuradas para os enlaces HTTP por predefinição.
Exemplo
O enlace é especificado nos ficheiros de configuração do cliente e do serviço. O tipo de enlace é especificado no binding
atributo do <endpoint>
elemento . Se quiser configurar o enlace netTcpBinding e alterar algumas das respetivas definições, é necessário definir uma configuração de enlace. O ponto final tem de referenciar a configuração de enlace com um bindingConfiguration
atributo. No exemplo seguinte, é definida uma configuração de enlace.
<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>