Compartir a través de


<<netTcpBinding>>

Especifica un enlace seguro, confiable y optimizado, adecuado para la comunicación entre equipos. De forma predeterminada, genera una pila de comunicación en tiempo de ejecución con WS-RealiableMessaging para la fiabilidad, Windows Security para la seguridad y autenticación de mensajes, TCP para el envío de mensajes y codificación binaria de mensajes.

<<system.serviceModel>>
  <enlaces>
    <<netTcpBinding>>

<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"
                defaultProtectionLevel="None/Sign/EncryptAndSign" 
                     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 maxDepth="integer" 
            maxStringContentLength="integer"
            maxByteArrayContentLength="integer"
            maxBytesPerRead="integer"
            maxNameTableCharCount="integer" />
   </binding>
</netTcpBinding>

Atributos y elementos

Atributos

Atributo Descripción

closeTimeout

Un valor TimeSpan que especifica el intervalo de tiempo de que dispone una operación de cierre para completarse. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:01:00.

hostnameComparisonMode

Especifica el modo de comparación de nombres de host HTTP utilizado para analizar los URI. Este atributo es del tipo HostnameComparisonMode, que indica si se va a utilizar el nombre del host para llegar al servicio cuando coincida en el URI. El valor predeterminado es StrongWildcard, que omite el nombre del host en la coincidencia.

listenBacklog

Un entero positivo que especifica el número máximo de canales que esperan ser aceptados en el agente de escucha. Conexiones que sobrepasen este límite se pondrán a la cola hasta que quede disponible un espacio por debajo del límite. El atributo connectionTimeout limita el tiempo durante el cual el cliente espera a ser conectado antes de iniciar una excepción de conexión. El valor predeterminado es 10.

maxBufferPoolSize

Entero que especifica el tamaño máximo del grupo de búferes para este enlace. El valor predeterminado es 512 * 1024 bytes. En muchas partes de Windows Communication Foundation (WCF) se utilizan búferes. Crear y destruir búferes cada vez que se usan es caro, y la recopilación de elementos no utilizados para los búferes también es cara. Con grupos de búferes, puede tomar un búfer del grupo, usarlo y devolverlo al grupo una vez haya terminado. Así se evitan los gastos generales al crear y destruir búferes.

maxBufferSize

Un entero positivo que especifica el tamaño máximo, en bytes, del búfer usado para almacenar los mensajes en memoria.

Si el atributo transferMode es igual a Buffered, este atributo debe ser igual al valor del atributo maxReceivedMessageSize.

Si el atributo transferMode es igual a Streamed, este atributo no puede ser superior al valor del atributo maxReceivedMessageSize, y debe tener, al menos, el tamaño de los encabezados.

El valor predeterminado es 65536. Para obtener más información, vea MaxBufferSize.

maxConnections

Un entero que especifica el número máximo de conexiones salientes y entrantes que el servicio creará/aceptará. Las conexiones entrantes y salientes se cuentan con respecto a un límite independiente especificado por este atributo.

Las conexiones entrantes que sobrepasen el límite se ponen a la cola hasta que quede disponible un espacio por debajo del límite.

Las conexiones salientes que sobrepasen el límite se ponen a la cola hasta que quede disponible un espacio por debajo del límite.

El valor predeterminado es 10.

maxReceivedMessageSize

Entero positivo que especifica el tamaño máximo del mensaje, en bytes, incluidos los encabezados, que se puede recibir en un canal configurado con este enlace. El remitente de un mensaje que supere este límite recibirá un error SOAP. El receptor elimina el mensaje y crea una entrada del evento en el registro de seguimiento. El valor predeterminado es 65536.

name

Cadena que contiene el nombre de la configuración del enlace. Este valor debe ser único porque se utiliza como identificador del enlace.

openTimeout

Un valor TimeSpan que especifica el intervalo de tiempo de que dispone una operación de apertura para completarse. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:01:00.

portSharingEnabled

Un valor booleano que especifica si el uso compartido de puerto TCP está habilitado para esta conexión. Si éste es false, cada enlace utiliza su propio puerto exclusivo. Este valor sólo es relevante para los servicios, porque los clientes no se ven afectados.

receiveTimeout

Un valor TimeSpan que especifica el intervalo de tiempo de que dispone una operación de recepción para completarse. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:10:00.

sendTimeout

Un valor TimeSpan que especifica el intervalo de tiempo de que dispone una operación de envío para completarse. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:01:00.

transactionFlow

Valor booleano que especifica si el enlace admite las transacciones WS del flujo. El valor predeterminado es false.

transactionProtocol

Especifica el protocolo de transacción que se va a usar con este enlace. Los valores válidos son

  • OleTransactions
  • WSAtomicTransactionOctober2004

El valor predeterminado es OleTransactions. Este atributo es del tipo TransactionProtocol.

transferMode

Un valor TransferMode que especifica si los mensajes se almacenan en búfer, se transmiten o si son una solicitud o una respuesta.

Elementos secundarios

Elemento Descripción

Elemento <security> de <netTcpBinding>

Define la configuración de seguridad del enlace. Este elemento es del tipo NetTcpSecurityElement.

<readerQuotas>

Define restricciones en la complejidad de los mensajes SOAP que pueden ser procesados por los extremos configurados con este enlace. Este elemento es del tipo XmlDictionaryReaderQuotasElement.

<reliableSession> (Elemento)

Especifica si se establecen sesiones confiables entre los extremos del canal.

Elementos primarios

Elemento Descripción

<enlaces>

Este elemento contiene una colección de enlaces estándar y personalizados. Cada entrada se identifica por su name. Los servicios utilizan los enlaces vinculándose a ellos mediante su name.

Comentarios

Este enlace genera de forma predeterminada una pila de comunicación en tiempo de ejecución que utiliza la seguridad de transporte, TCP para la entrega del mensaje, y una codificación de mensajes binaria. Este enlace es una opción proporcionada por el sistema Windows Communication Foundation (WCF) adecuada para la comunicación a través de una intranet.

La configuración predeterminada para netTcpBinding es más rápida que la configuración proporcionada por wsHttpBinding, pero sólo está diseñada para la comunicación WCF a WCF. El comportamiento de seguridad es configurable mediante el parámetro opcional securityMode. El uso de WS-ReliableMessaging es configurable utilizando el atributo reliableSessionEnabled opcional. Pero la mensajería de confianza está apagada de forma predeterminada. Más generalmente, los enlaces proporcionados por el sistema HTTP como wsHttpBinding y basicHttpBinding se configuran para activar de forma predeterminada las cosas, mientras que el enlace netTcpBinding desactiva de forma predeterminada las cosas para que tenga que inscribirse para obtener compatibilidad, por ejemplo, para una de las especificaciones de WS-*. Esto significa que la configuración predeterminada para TCP es más rápida en intercambiar los mensajes entre los extremos que la configurada de forma predeterminada para los enlaces HTTP.

Ejemplo

El enlace se especifica en los archivos de configuración para el cliente y servicio. El tipo de enlace se especifica en el atributo de binding del elemento <endpoint>. Si desea configurar el enlace netTcpBinding y cambiar algunos de sus valores, es necesario definir una configuración de enlace. El extremo debe hacer referencia a la configuración de enlace por el nombre con un atributo bindingConfiguration. En el ejemplo siguiente la configuración de enlace se denomina Binding1, y se define como se muestra.

<services>
  <service name="Microsoft.ServiceModel.Samples.CalculatorService"
           behaviorConfiguration="CalculatorServiceBehavior">
    ...
    <endpoint address=""
              binding="netTcpBinding"
              bindingConfiguration="Binding1" 
              contract="Microsoft.ServiceModel.Samples.ICalculator" />
    ...
  </service>
</services>

<bindings>
  <netTcpBinding>
    <binding name="Binding1" 
             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 también

Referencia

NetTcpBinding
NetTcpBindingElement

Conceptos

<enlace>

Otros recursos

Windows Communication Foundation Bindings
Configuring System-Provided Bindings
Using Bindings to Configure Services and Clients