<tcpTransport>

Defines a TCP transport that can be used by a channel to transfers messages for a custom binding.

<configuration>
  <system.serviceModel>
    <bindings>
      <customBinding>
        <binding>
          <tcpTransport>

Syntax

<tcpTransport channelInitializationTimeout="TimeSpan"
              connectionBufferSize="Integer"
              hostNameComparisonMode="StrongWildcard/Exact/WeakWildcard"
              listenBacklog="Integer"
              manualAddressing="Boolean"
              maxBufferPoolSize="Integer"
              maxBufferSize="Integer"
              maxOutputDelay="TimeSpan"
              maxPendingAccepts="Integer"
              maxPendingConnections="Integer"
              maxReceivedMessageSize="Integer"
              portSharingEnabled="Boolean"
              teredoEnabled="Boolean"
              transferMode="Buffered/Streamed/StreamedRequest/StreamedResponse" >
  <connectionPoolSettings groupName="String"
                          idleTimeout="TimeSpan"
                          leaseTimeout="TimeSpan"
                          maxOutboundConnectionsPerEndpoint="Integer" />
</tcpTransport>

Attributes and Elements

The following sections describe attributes, child elements, and parent elements.

Attributes

Attribute Description
channelInitializationTimeout Gets or sets the time limit for initializing a channel to be accepted. The maximum time a channel can be in the initialization state before being disconnected in seconds. This quota includes the time a TCP connection can take to authenticate itself using the .NET Message Framing protocol. A client needs to send some initial data before the server has enough information to perform authentication. The default is 30 seconds.
connectionBufferSize Gets or sets the size of the buffer used to transmit a chunk of the serialized message on the wire from the client or service.
hostNameComparisonMode Gets or sets a value that indicates whether the hostname is used to reach the service when matching on the URI.
listenBacklog The maximum number of queued connection requests that can be pending for a Web service. The connectionLeaseTimeout attribute limits the duration the client will wait to be connected before throwing a connection exception. This is a socket level property which controls the maximum number of queued connection requests that can be pending for a Web service. When ListenBacklog is too low, WCF will stop accepting requests and therefore drop new connections until the server acknowledges some of the existing queued connections. The default is 16 * number of processors.
manualAddressing Gets or sets a value that indicates whether manual addressing of the message is required.
maxBufferPoolSize Gets or sets the maximum size of any buffer pools used by the transport.
maxBufferSize Gets or sets the maximum size of the buffer to use. For streamed messages, this value should be at least the maximum possible size of the message headers, which are read in buffered mode.
maxOutputDelay Gets or sets the maximum interval of time that a chunk of a message or a full message can remain buffered in memory before being sent out.
maxPendingAccepts Gets or sets the maximum number of pending asynchronous accept operations that are available for processing incoming connections to the service.
maxPendingConnections Gets or sets the maximum number of connections awaiting dispatch on the service.
maxReceivedMessageSize Gets and sets the maximum allowable message size that can be received.
portSharingEnabled A Boolean value that specifies if TCP port sharing is enabled for this connection. If this is false, each binding will use its own exclusive port. The default is false.

This setting is relevant only to services. Clients are not affected.

Using this setting requires enabling the Windows Communication Foundation (WCF) TCP Port Sharing Service by changing its Startup Type to Manual or Automatic
teredoEnabled A Boolean value that specifies whether Teredo (a technology for addressing clients that are behind firewalls) is enabled. The default is false.

This property enables Teredo for the underlying TCP socket. For more information, see Teredo Overview.

This property is applicable only on Windows XP SP2 and Windows Server 2003. Windows Vista has a machine-wide configuration option for Teredo, so when running Vista, this property is ignored. Teredo requires that the client and service machines both have the Microsoft IPv6 stack installed and correctly configured for Teredo usage.
transferMode Gets or sets a value that indicates whether the messages are buffered or streamed with the connection-oriented transport.
connectionPoolSettings Specifies additional connection pool settings for a Named Pipe binding.

Child Elements

None

Parent Elements

Element Description
<binding> Defines all binding capabilities of the custom binding.

Remarks

This transport uses URIs of the form "net.tcp://hostname:port/path". Other URI components are optional.

The tcpTransport element is the starting point for creating a custom binding that implements the TCP transport protocol. This transport is optimized for WCF-to-WCF communication.

See also