<wsDualHttpBinding>

Определяет безопасную, надежную и совместимую привязку, которая подходит для дуплексных контрактов служб или обмена данными через посредников SOAP.

<configuration>
  <system.serviceModel>
    <bindings>
      <wsDualHttpBinding>

Синтаксис

<wsDualHttpBinding>
  <binding name="String"
          closeTimeout="TimeSpan"
          openTimeout="TimeSpan"
          receiveTimeout="TimeSpan"
          sendTimeout="TimeSpan"
          bypassProxyOnLocal="Boolean"
          clientBaseAddress="URI"
          transactionFlow="Boolean"
          hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
          maxBufferPoolSize="integer"
          maxReceivedMessageSize="Integer"
          messageEncoding="Text/Mtom"
          proxyAddress="URI"
          textEncoding="Unicode/BigEndianUnicode/UTF8"
          useDefaultWebProxy="Boolean">
    <reliableSession ordered="Boolean"
                     inactivityTimeout="TimeSpan" />
    <security mode="None/Message">
      <message clientCredentialType="None/Windows/UserName/Certificate/CardSpace"
               negotiateServiceCredential="Boolean"
               algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15" />
    </security>
    <readerQuotas maxArrayLength="Integer"
                  maxBytesPerRead="Integer"
                  maxDepth="Integer"
                  maxNameTableCharCount="Integer"
                  maxStringContentLength="Integer" />
  </binding>
</wsDualHttpBinding>

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

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

Attributes

Свойство Description
bypassProxyOnLocal Логическое значение, указывающее, следует ли обходить прокси-сервер для локальных адресов. Значение по умолчанию — false.
clientBaseAddress Универсальный код ресурса (URI), который задает базовый адрес, который клиент прослушивает для сообщений ответа от службы. Если задано, этот адрес (плюс идентификатор per-channelGUID) используется для прослушивания. Если значение не задано, базовый адрес клиента создается в определенной форме транспорта. Значение по умолчанию — null.
closeTimeout TimeSpan Значение, указывающее интервал времени, предоставленный для завершения операции закрытия. Это значение должно быть больше или равно Zero. Значение по умолчанию — 00:01:00.
hostnameComparisonMode Указывает режим сравнения имен узла HTTP, используемый для синтаксического анализа URI. Этот атрибут имеет тип HostNameComparisonMode, который указывает, используется ли имя узла для достижения службы при сопоставлении с URI. Значение по умолчанию, StrongWildcardкоторое игнорирует имя узла в совпадении.
maxBufferPoolSize Целое число, указывающее максимальный размер буферного пула для этой привязки. Значение по умолчанию — 524 288 байт (512 * 1024). Во многих частях Windows Communication Foundation (WCF) используются буферы. Создание и уничтожение буферов каждый раз, когда они используются, является дорогостоящим, а сбор мусора для буферов также является дорогостоящим. С помощью буферных пулов можно взять буфер из пула, использовать его и вернуть его в пул после завершения. Таким образом, не требуется затраты на создание и уничтожение буферов.
maxReceivedMessageSize Положительное целое число, указывающее максимальный размер сообщения в байтах, включая заголовки, которые можно получить на канале, настроенном с этой привязкой. Отправитель сообщения, превышающего это ограничение, получит ошибку SOAP. Получатель удаляет сообщение и создает запись события в журнале трассировки. Значение по умолчанию — 65536.
messageEncoding Определяет кодировщик, используемый для кодирования сообщения. Допустимые значения включают следующие значения:

— Текст: используйте кодировщик текстовых сообщений.
— Mtom: используйте кодировщик организации передачи сообщений 1.0 (MTOM).
— Значение по умолчанию — Text.

Этот атрибут имеет тип WSMessageEncoding.
имя Строка, содержащая имя конфигурации привязки. Это значение должно быть уникальным, так как оно используется в качестве идентификации привязки. Начиная с .NET Framework 4 привязки и поведение не требуются для имени. Дополнительные сведения о конфигурации по умолчанию и безымяных привязках и поведении см. в статье "Упрощенная конфигурация " и "Упрощенная конфигурация" для служб WCF.
openTimeout TimeSpan Значение, указывающее интервал времени, предоставленного для завершения операции открытия. Это значение должно быть больше или равно Zero. Значение по умолчанию — 00:01:00.
proxyAddress Универсальный код ресурса (URI), указывающий адрес прокси-сервера HTTP. В useDefaultWebProxy противном случае trueэтот параметр должен быть null. Значение по умолчанию — null.
receiveTimeout TimeSpan Значение, указывающее интервал времени, предоставленного для завершения операции получения. Это значение должно быть больше или равно Zero. Значение по умолчанию — 00:01:00.
sendTimeout TimeSpan Значение, указывающее интервал времени, предоставленного для завершения операции отправки. Это значение должно быть больше или равно Zero. Значение по умолчанию — 00:01:00.
textEncoding Задает кодировку набора символов, которая будет использоваться для создания сообщений в привязке. Допустимые значения включают следующие значения:

— BigEndianUnicode: кодировка Unicode BigEndian.
— Юникод: 16-разрядная кодировка.
— UTF8: 8-разрядная кодировка

Значение по умолчанию — UTF8. Этот атрибут имеет тип Encoding.
transactionFlow Логическое значение, указывающее, поддерживает ли привязка поток WS-Transactions. Значение по умолчанию — false.
useDefaultWebProxy Логическое значение, указывающее, используется ли автоматически настроенный HTTP-прокси системы. Адрес прокси-сервера должен быть null (т. е. не задан), если этот атрибут имеет значение true. Значение по умолчанию — true.

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

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

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

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

Замечания

Предоставляет WSDualHttpBinding ту же поддержку протоколов веб-службы, что WSHttpBindingи протоколы, но для использования с дуплексными контрактами. WSDualHttpBinding поддерживает только безопасность SOAP и требует надежного обмена сообщениями. Для этой привязки требуется, чтобы у клиента был общедоступный универсальный код ресурса (URI), предоставляющий конечную точку обратного вызова для службы. Это предоставляется атрибутом clientBaseAddress . Двойная привязка предоставляет IP-адрес клиента службе. Клиент должен использовать безопасность, чтобы убедиться, что он подключается только к службам, которым он доверяет.

Эту привязку можно использовать для надежного взаимодействия с помощью одного или нескольких посредников SOAP.

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

Example

<configuration>
  <system.ServiceModel>
    <bindings>
      <wsDualHttpBinding>
        <binding closeTimeout="00:00:10"
                 openTimeout="00:00:20"
                 receiveTimeout="00:00:30"
                 sendTimeout="00:00:40"
                 bypassProxyOnLocal="false"
                 clientBaseAddress="http://localhost:8001/client/"
                 transactionFlow="true"
                 hostNameComparisonMode="WeakWildcard"
                 maxReceivedMessageSize="1000"
                 messageEncoding="Mtom"
                 proxyAddress="http://foo/bar"
                 textEncoding="utf-16"
                 useDefaultWebProxy="false">
          <reliableSession ordered="false"
                           inactivityTimeout="00:02:00" />
          <security mode="None">
            <message clientCredentialType="None"
                     negotiateServiceCredential="false"
                     algorithmSuite="Aes128" />
          </security>
        </binding>
      </wsDualHttpBinding>
    </bindings>
  </system.ServiceModel>
</configuration>

См. также