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


<netNamedPipeBinding>

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

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

<system.serviceModel>
  <bindings>
    <netNamedPipeBinding>

Синтаксис

                <netNamedPipeBinding>
                   <binding 
                      closeTimeout="TimeSpan"
                      hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
                      maxBufferPoolSize="Integer"
                      maxBufferSize="Integer"
                      maxConnections="Integer" 
                      maxReceivedMessageSize="Integer"
                            name="string"
                      openTimeout="TimeSpan" 
                      receiveTimeout="TimeSpan"
                      sendTimeout="TimeSpan"
                      transactionFlow="Boolean"
                      transactionProtocol="OleTransactions/WS-AtomicTransactionOctober2004"
                            transferMode="Buffered/Streamed/StreamedRequest/StreamedResponse"
                      <security mode="None/Transport">
                            <transport  protectionLevel="None/Sign/EncryptAndSign" />
                      </security>
                       <readerQuotas             maxArrayLength="Integer"            maxBytesPerRead="Integer"            maxDepth="Integer"             maxNameTableCharCount="Integer"                     maxStringContentLength="Integer" />   </binding>
                </netNamedPipeBinding>

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

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

Атрибуты

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

closeTimeout

Значение TimeSpan, которое задает длительность времени ожидания для завершения операции закрытия. Это значение должно быть больше или равно Zero. Значение по умолчанию — 00:01:00.

hostnameComparisonMode

Задает режим сравнения имен узлов HTTP для анализа универсальных кодов ресурсов (URI). Это атрибут типа HostnameComparisonMode, который указывает, используется ли имя узла для доступа к службе при сравнении по универсальному коду ресурсов (URI). Значение по умолчанию — StrongWildcard, при котором имя узла в найденном соответствии не учитывается.

maxBufferPoolSize

Целое число, задающее максимальный размер буферного пула для этой привязки. Значение по умолчанию — 524 288 байт (512 * 1024). Многие элементы Windows Communication Foundation (WCF) используют буферы. При создании буферов и их уничтожении после каждого использования расходуется слишком много ресурсов; при сборке мусора для буферов также расходуется слишком много ресурсов. Буферные пулы позволяют брать буфер из пула, использовать его, а затем возвращать обратно, когда он больше не требуется. Это позволяет избежать излишней нагрузки, связанной с созданием и уничтожением буферов.

maxBufferSize

Положительное целое число, указывающее максимальный размер буфера, используемого для хранения сообщений в памяти (в байтах). Если буфер полон, избыточные данные остаются в основном сокете до тех пор, пока буфер не освободится. Данное значение не может быть меньше значения атрибута 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.

receiveTimeout

Значение TimeSpan, которое задает длительность времени ожидания для завершения операции получения. Это значение должно быть больше или равно Zero. Значение по умолчанию — 00:10:00.

sendTimeout

Значение TimeSpan, которое задает длительность времени ожидания для завершения операции отправки. Это значение должно быть больше или равно Zero. Значение по умолчанию — 00:01:00.

transactionFlow

Логическое значение, определяющее, поддерживает ли привязка потоковые спецификации WS-Transactions. Значение по умолчанию — false.

transactionProtocol

Указывает протокол транзакций, используемый с данной привязкой. Допустимы следующие значения:

  • OleTransactions

  • WS-AtomicTransactionOctober2004

Значение по умолчанию — OleTransactions. Это атрибут типа TransactionProtocol.

transferMode

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

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

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

<security> для <netNamedPipeBinding>

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

<readerQuotas>

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

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

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

<bindings>

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

Замечания

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

Конфигурация по умолчанию для NetNamedPipeBinding аналогична конфигурации, предоставленной NetTcpBinding, но она существенно проще, поскольку реализация WCF предназначена только для использования в пределах компьютера и, следовательно, содержит меньшее число предоставляемых функциональных возможностей. Наиболее существенным отличием является то, что параметр securityMode содержит только значения None и Transport. Поддержка безопасности SOAP не предусмотрена. Режим безопасности настраивается с помощью дополнительного атрибута securityMode.

Пример

В следующем примере демонстрируется применение привязки NetNamedPipeBinding, обеспечивающей обмен данными между процессами одного компьютера. Использование именованных каналов для обмена данными между компьютерами не поддерживается.

Привязка задается в файлах конфигурации клиента и службы. Тип привязки указывается в атрибуте binding элемента <endpoint>. Чтобы настроить привязку netNamedPipeBinding и изменить некоторые ее параметры, необходимо определить конфигурацию привязки. Конечная точка должна ссылаться на конфигурацию привязки по имени с атрибутом bindingConfiguration. В этом примере конфигурации привязки присвоено имя «Binding1».

<configuration>
  <system.serviceModel>
    <services>
      <service name="Microsoft.ServiceModel.Samples.CalculatorService"
               behaviorConfiguration="CalculatorServiceBehavior">
        <host>
          <baseAddresses>
            <add baseAddress="https://localhost:8000/ServiceModelSamples/service"/>
          </baseAddresses>
        </host>
        <!-- this endpoint is exposed at the base address provided by host: net.pipe://localhost/ServiceModelSamples/service  -->
        <endpoint address="net.pipe://localhost/ServiceModelSamples/service"
                  binding="netNamedPipeBinding"
                  contract="Microsoft.ServiceModel.Samples.ICalculator" />
        <!-- the mex endpoint is exposed at https://localhost:8000/ServiceModelSamples/service/mex -->
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange" />
      </service>
    </services>

    <bindings>
      <netNamedPipeBinding>
        <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" 
                 maxBufferPoolSize="524288"
                 maxBufferSize="65536" 
                 maxConnections="10" 
                 maxReceivedMessageSize="65536">
          <security mode="Transport">
            <transport protectionLevel="EncryptAndSign" />
          </security>
        </binding>
      </netNamedPipeBinding>
    </bindings>

    <!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
    <behaviors>
      <serviceBehaviors>
        <behavior name="CalculatorServiceBehavior">
          <serviceMetadata httpGetEnabled="True"/>
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

См. также

Справочник

NetNamedPipeBindingElement
NetNamedPipeBinding

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

<binding>

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

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