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


<Nettcpbinding>

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

<настройка>
  <system.serviceModel>
    <Привязки>
      <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>

Элементы и атрибуты

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

Атрибуты

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

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

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

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

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

Комментарии

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

Конфигурация по умолчанию для netTcpBinding выполняется быстрее, чем конфигурация, предоставляемая wsHttpBinding, но предназначена только для обмена данными 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>

См. также раздел