<netTcpBinding>

Указывает безопасную, надежную, оптимизированную привязку, подходящую для обмена данными между компьютерами. По умолчанию он создает стек обмена данными среды выполнения с windows Security для обеспечения безопасности сообщений и проверки подлинности, TCP для доставки сообщений и кодирования двоичных сообщений.

<configuration>
  <system.serviceModel>
    <bindings>
      <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"
               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>

Атрибуты и элементы

В следующих разделах описаны атрибуты, дочерние и родительские элементы.

Attributes

Свойство Description
closeTimeout TimeSpan Значение, указывающее интервал времени, предоставленный для завершения операции закрытия. Это значение должно быть больше или равно Zero. Значение по умолчанию — 00:01:00.
hostNameComparisonMode Указывает режим сравнения имен узла HTTP, используемый для синтаксического анализа URI. Этот атрибут имеет тип 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) для обмена данными по интрасети.

Конфигурация по умолчанию netTcpBinding быстрее, чем конфигурация, предоставляемая этим wsHttpBindingпараметром, но предназначена только для обмена данными WCF. Поведение безопасности настраивается с помощью необязательного securityMode атрибута. Использование WS-ReliableMessaging настраивается с помощью необязательного reliableSessionEnabled атрибута. Но надежная передача сообщений отключена по умолчанию. Как правило, привязки, предоставляемые системой HTTP, такие как wsHttpBinding и basicHttpBinding настроены для включения вещей по умолчанию, в то время netTcpBinding как привязка отключает вещи по умолчанию, чтобы получить поддержку, например для одной из спецификаций WS-* . Это означает, что конфигурация по умолчанию для TCP быстрее обмениваются сообщениями между конечными точками, чем настроенные для привязок HTTP по умолчанию.

Example

Привязка указывается в файлах конфигурации для клиента и службы. Тип привязки указывается в binding атрибуте <endpoint> элемента. Если вы хотите настроить привязку 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>

См. также