<netTcpBinding>

指定一个适用于跨计算机通信的安全、可靠、优化的绑定。 默认情况下,它生成一个运行时通信堆栈,其中包含用于消息安全和身份验证的 Windows 安全性、用于消息传递的 TCP 和二进制消息编码。

<配置>
   <system.serviceModel>
     <绑定>
       <netTcpBinding>

Syntax

<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>

属性和元素

下列各节描述了特性、子元素和父元素。

特性

Attribute Description
closeTimeout 一个 TimeSpan 值,该值指定为完成关闭作提供的时间间隔。 此值应大于或等于 Zero。 默认值为 00:01:00。
hostNameComparisonMode 指定用于分析 URI 的 HTTP 主机名比较模式。 此属性的类型 HostNameComparisonMode,指示主机名在 URI 上匹配时是否用于访问服务。 默认值为 StrongWildcard忽略匹配项中的主机名。
listenBacklog 一个正整数,指定等待在侦听器上接受的最大通道数。 超出此限制的连接将排队,直到超出限制的空间可用。 该 connectionTimeout 属性限制客户端在引发连接异常之前等待连接的时间。 默认值是10。
maxBufferPoolSize 一个整数,指定此绑定的最大缓冲池大小。 默认值为 512 * 1024 字节。 Windows Communication Foundation(WCF)的许多部分都使用缓冲区。 每次使用缓冲区时创建和销毁缓冲区的成本高昂,缓冲区的垃圾回收也非常昂贵。 使用缓冲池,可以从池中获取缓冲区,使用它,并在完成后将其返回到池。 因此,可以避免创建和销毁缓冲区的开销。
maxBufferSize 一个正整数,指定用于在内存中存储消息的缓冲区的最大大小(以字节为单位)。

transferMode如果该属性等于Buffered,则此属性应等于maxReceivedMessageSize属性值。

transferMode如果属性等于Streamed,则此属性不能大于maxReceivedMessageSize属性值,并且至少应为标头的大小。

默认值为 65536。 有关详细信息,请参阅 MaxBufferSize
maxConnections 一个整数,指定服务将创建/接受的最大出站和入站连接数。 传入和传出连接根据此属性指定的单独限制进行计数。

超出限制的入站连接将排队,直到超出限制的空间可用。

超出限制的出站连接将排队,直到超出限制的空间可用。

默认值是10。
maxReceivedMessageSize 一个正整数,指定可在配置有此绑定的通道上接收的最大消息大小(以字节为单位),包括标头。 超出此限制的消息发送方将收到 SOAP 错误。 接收方删除消息,并在跟踪日志中创建事件的条目。 默认值为 65536。
name 一个字符串,其中包含绑定的配置名称。 此值应是唯一的,因为它用作绑定的标识。 从 .NET Framework 4 开始,不需要绑定和行为才能具有名称。 有关默认配置和无名称绑定和行为的详细信息,请参阅 WCF 服务的 简化配置简化配置
openTimeout 一个 TimeSpan 值,该值指定为打开作完成提供的时间间隔。 此值应大于或等于 Zero。 默认值为 00:01:00。
portSharingEnabled 一个布尔值,该值指定是否为此连接启用了 TCP 端口共享。 如果是, false则每个绑定都使用其自己的独占端口。 此设置仅与服务相关,因为客户端不受影响。
receiveTimeout 一个 TimeSpan 值,该值指定为接收作完成提供的时间间隔。 此值应大于或等于 Zero。 默认值为 00:10:00。
sendTimeout 一个 TimeSpan 值,该值指定为要完成的发送作提供的时间间隔。 此值应大于或等于 Zero。 默认值为 00:01:00。
transactionFlow 一个布尔值,该值指定绑定是否支持流动 WS-Transactions。 默认值为 false
transactionProtocol 指定要用于此绑定的事务协议。 有效值为

- OleTransactions
- WSAtomicTransactionOctober2004

默认值为 OleTransactions。 此属性的类型 TransactionProtocol为 .
transferMode 一个 TransferMode 值,该值指定消息是缓冲还是流式传输,还是请求或响应。

子元素

元素 Description
<安全> 定义绑定的安全设置。 此元素的类型 NetTcpSecurityElement为 .
<readerQuotas> 定义由使用此绑定配置的终结点可以处理的 SOAP 消息复杂性的约束。 此元素的类型 XmlDictionaryReaderQuotasElement为 .
<ReliableSession> 指定是否在通道终结点之间建立可靠会话。

父元素

元素 Description
<绑定> 此元素包含标准绑定和自定义绑定的集合。

注解

默认情况下,此绑定会生成运行时通信堆栈,该堆栈使用传输安全性、TCP 进行消息传递和二进制消息编码。 此绑定是适当的 Windows Communication Foundation (WCF) 系统提供的用于通过 Intranet 进行通信的选择。

默认配置的速度比提供的wsHttpBinding配置netTcpBinding更快,但仅用于 WCF 通信。 可以使用可选 securityMode 属性配置安全行为。 可以使用可选 reliableSessionEnabled 属性配置 WS-ReliableMessaging 的使用。 但默认情况下,可靠消息传送处于关闭状态。 更普遍的是,HTTP 系统提供的绑定(例如 wsHttpBinding ,并 basicHttpBinding 配置为在默认情况下打开内容),而默认情况下绑定 netTcpBinding 会关闭某些内容,以便你必须选择加入以获取支持,例如,对于其中一个 WS-* 规范。 这意味着 TCP 的默认配置在终结点之间交换消息的速度比默认情况下为 HTTP 绑定配置的消息更快。

Example

绑定在客户端和服务配置文件中指定。 绑定类型在元素的属性<endpoint>binding指定。 如果要配置 netTcpBinding 绑定并更改其某些设置,则必须定义绑定配置。 终结点必须使用属性引用绑定配置 bindingConfiguration 。 在以下示例中,定义了绑定配置。

<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>

另请参阅