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


<wsDualHttpBinding>

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

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

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

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

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

Атрибуты

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

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

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

  • Text: используется кодировщик текстовых сообщений.

  • Mtom: используется кодировщик MTOM 1.0 (Message Transmission Organization Mechanism).

  • Значение по умолчанию — Text.

Это атрибут типа WSMessageEncoding.

name

Строка, содержащая имя конфигурации привязки. Это значение должно быть уникальным, поскольку оно используется в качестве идентификатора привязки. Начиная с версии .NET Framework 4 для привязок и поведений необязательно задавать имена. Дополнительные сведения о конфигурации по умолчанию и о безымянных привязках и поведениях см. в разделах Simplified Configuration и Simplified Configuration for WCF Services.

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: 16-разрядная кодировка.

  • UTF8: 8-разрядная кодировка.

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

transactionFlow

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

useDefaultWebProxy

Логическое значение, указывающее, должен ли использоваться автоматически настроенный системный прокси-сервер HTTP. Если данный атрибут имеет значение true, адрес прокси-сервера должен быть равен null (то есть не задан). Значение по умолчанию — true.

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

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

<security> для <wsDualHttpBinding>

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

<readerQuotas>

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

reliableSession

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

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

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

<bindings>

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

Замечания

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="https://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>

См. также

Справочник

WSDualHttpBinding
WSDualHttpBindingElement

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

<binding>

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

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