Поделиться через


<netTcpBinding>

Задает безопасную, надежную и оптимизированную привязку, пригодную для обмена данными между компьютерами. По умолчанию создает стек связи среды выполнения с WS-ReliableMessaging для надежности, с безопасностью Windows для безопасности и проверки подлинности, с протоколом TCP для доставки сообщений, а также c кодированием двоичных сообщений.

Иерархия схемы

<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"
                                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             maxArrayLength="Integer"            maxBytesPerRead="Integer"            maxDepth="Integer"             maxNameTableCharCount="Integer"                     maxStringContentLength="Integer" />   </binding>
                </netTcpBinding>

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

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

Атрибуты

Атрибут Описание

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 для привязок и поведений необязательно задавать имена. Дополнительные сведения о конфигурации по умолчанию и о безымянных привязках и поведениях см. в разделах Simplified Configuration и Simplified Configuration for WCF Services.

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, которое указывает, следует ли помещать сообщения в буфер или передавать их потоком по запросу или отклику.

Дочерние элементы

Элемент Описание

<security> для <netTcpBinding>

Определяет параметры безопасности привязки. Это элемент типа NetTcpSecurityElement.

<readerQuotas>

Определяет ограничения по сложности сообщений SOAP, которые могут обрабатываться конечными точками, настроенными с использованием этой привязки. Это элемент типа XmlDictionaryReaderQuotasElement.

reliableSession

Указывает, устанавливаются ли между конечными точками канала надежные сеансы.

Родительские элементы

Элемент Описание

<bindings>

Этот элемент содержит коллекцию стандартных и пользовательских привязок.

Замечания

Эта привязка создает стек связи времени выполнения по умолчанию, использующий режим безопасности транспорта, протокол TCP для доставки сообщений, а также кодирование двоичных сообщений. Эта привязка является должным предоставляемым системой выбором Windows Communication Foundation (WCF) для взаимодействия через интрасеть.

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

Пример

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

См. также

Справочник

NetTcpBinding
NetTcpBindingElement

Основные понятия

<binding>

Другие ресурсы

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