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


<wsHttpBinding>

Определяет безопасную, надежную, привязку с возможностью взаимодействия, которая может использоваться для недуплексных контрактов службы. В привязке реализованы следующие возможности: обмен сообщениями WS-Reliable для обеспечения надежности, а также WS-Security для обеспечения безопасности и проверки подлинности сообщений. В качестве транспорта используется HTTP, а для кодировки сообщений — кодировка Text/XML.

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

<system.serviceModel>
  <bindings>
    <wsHttpBinding>

Синтаксис

                <wsHttpBinding>
                    <binding 
                        allowCookies="Boolean"
                        bypassProxyOnLocal="Boolean"
                        closeTimeout="TimeSpan"
                        hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
                        maxBufferPoolSize="integer"
                        maxReceivedMessageSize="Integer"
                        messageEncoding="Text/Mtom" 
                                name="string"
                        openTimeout="TimeSpan" 
                        proxyAddress="URI"
                        receiveTimeout="TimeSpan"
                        sendTimeout="TimeSpan"
                                textEncoding="UnicodeFffeTextEncoding/Utf16TextEncoding/Utf8TextEncoding"
                        transactionFlow="Boolean"
                        useDefaultWebProxy="Boolean">
                        <reliableSession ordered="Boolean"
                           inactivityTimeout="TimeSpan"
                           enabled="Boolean" />
                        <security mode="Message/None/Transport/TransportWithCredential">
                           <transport clientCredentialType="Basic/Certificate/Digest/None/Ntlm/Windows"
                                proxyCredentialType="Basic/Digest/None/Ntlm/Windows"
                                realm="string" />
                          <message 
                             algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
                                          clientCredentialType="Certificate/IssuedToken/None/UserName/Windows"
                             establishSecurityContext="Boolean"
                             negotiateServiceCredential="Boolean" />
                        </security>
                       <readerQuotas             maxArrayLength="Integer"            maxBytesPerRead="Integer"            maxDepth="Integer"             maxNameTableCharCount="Integer"                     maxStringContentLength="Integer" />
                    </binding>
                </wsHttpBinding>

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

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

Атрибуты

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

allowCookies

Логическое значение, определяющее, принимает ли клиент файлы Cookie и распространяет ли он их на будущие запросы. Значение по умолчанию — false.

Это свойство можно использовать при взаимодействии с веб-службами ASMX, которые используют файлы Cookie. В этом случае можно быть уверенным, что файлы Cookie, возвращаемые с сервера, автоматически копируются во все последующие клиентские запросы к этой службе.

bypassProxyOnLocal

Логическое значение, определяющее, будет ли выполняться обход прокси-сервера для локальных адресов. Значение по умолчанию — false.

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. Если параметр useSystemWebProxy имеет значение true, данный параметр должен иметь значение null. Значение по умолчанию — null.

receiveTimeout

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

sendTimeout

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

textEncoding

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

  • UnicodeFffeTextEncoding: кодировка Юникод (обратный порядок байтов).

  • Utf16TextEncoding: 16-разрядная кодировка.

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

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

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

transactionFlow

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

useDefaultWebProxy

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

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

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

<security> для <wsHttpBinding>

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

<readerQuotas>

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

reliableSession

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

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

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

<bindings>

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

Замечания

Привязка WSHttpBinding аналогична привязке BasicHttpBinding, но при этом предоставляет больше функциональных возможностей веб-служб. В ней используется транспорт HTTP и обеспечивается безопасность сообщения, как и в привязке BasicHttpBinding, но вместе с тем также предоставляются транзакции, надежный обмен сообщениями и WS-Addressing, включенные по умолчанию или доступные посредством одного управляющего параметра.

Пример

<configuration>
    <system.ServiceModel>
        <bindings>
            <wsHttpBinding>
                <binding 
                    closeTimeout="00:00:10"
                    openTimeout="00:00:20" 
                    receiveTimeout="00:00:30"
                    sendTimeout="00:00:40"
                    bypassProxyOnLocal="false"
                    transactionFlow="false" 
                    hostNameComparisonMode="WeakWildcard"
                    maxReceivedMessageSize="1000"
                    messageEncoding="Mtom" 
                    proxyAddress="http://foo/bar"
                    textEncoding="utf-16"
                    useDefaultWebProxy="false">
                    <reliableSession ordered="false"
                         inactivityTimeout="00:02:00"
                         enabled="true" />
                    <security mode="Transport">
                         <transport clientCredentialType="Digest"
                            proxyCredentialType="None"
                            realm="someRealm" />
                         <message clientCredentialType="Windows"
                            negotiateServiceCredential="false"
                            algorithmSuite="Aes128" 
                            defaultProtectionLevel="None" />
                    </security>
                </binding>
           </wsHttpBinding>
        </bindings>
    </system.ServiceModel>
</configuration>

См. также

Справочник

WSHttpBinding
WSHttpBindingElement

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

<binding>

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

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