<wsDualHttpBinding>

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

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

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

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

Атрибуты

Атрибут Описание
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.
name Строка, содержащая имя конфигурации привязки. Это значение должно быть уникальным, поскольку оно используется в качестве идентификатора привязки. Начиная с платформа .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: кодировка BigEndian в Юникоде.
— Юникод: 16-разрядная кодировка.
— UTF8: 8-битовое кодирование

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

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

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

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

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

Комментарии

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

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

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

Пример

<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>

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