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


<basicHttpBinding>

Представляет собой привязку, которую служба Windows Communication Foundation (WCF) может использовать для настройки и предоставления конечных точек, которые могут взаимодействовать с веб-службами и клиентами ASMX, а также с другими службами, соответствующими требованиям WS-I Basic Profile 1.1.

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

<system.serviceModel>
  <bindings>
    <basicHttpBinding>

Синтаксис

                <basicHttpBinding>
                   <binding 
                       allowCookies="Boolean"
                       bypassProxyOnLocal="Boolean"
                       closeTimeout="TimeSpan" 
                       envelopeVersion="None/Soap11/Soap12"
                       hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
                       maxBufferPoolSize="Integer"
                       maxBufferSize="Integer"
                       maxReceivedMessageSize="Integer"
                       messageEncoding="Text/Mtom"
                              name="string" 
                       openTimeout="TimeSpan" 
                       proxyAddress="URI"
                        receiveTimeout="TimeSpan"
                       sendTimeout="TimeSpan"
                              textEncoding="UnicodeFffeTextEncoding/Utf16TextEncoding/Utf8TextEncoding"
                              transferMode="Buffered/Streamed/StreamedRequest/StreamedResponse"
                       useDefaultWebProxy="Boolean"
                       <security mode="None/Transport/Message/TransportWithMessageCredential/TransportCredentialOnly">
                           <transport clientCredentialType="None/Basic/Digest/Ntlm/Windows/Certificate"
                                  proxyCredentialType="None/Basic/Digest/Ntlm/Windows"
                                                    realm="string" />
                           <message 
                                 algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
                                            clientCredentialType="UserName/Certificate"/>
                       </security>
                       <readerQuotas 
                            maxArrayLength="Integer"
                            maxBytesPerRead="Integer"
                            maxDepth="Integer"             maxNameTableCharCount="Integer"                maxStringContentLength="Integer" />
                   </binding>
                </basicHttpBinding>

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

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

Атрибуты

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

allowCookies

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

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

bypassProxyOnLocal

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

Интернет-ресурс является локальным, если у него локальный адрес. Локальный адрес — это адрес, расположенный на том же компьютере, в той же локальной сети или интрасети. Он синтаксически определяется по отсутствию точки (.), как в URI «http://webserver/» и «https://localhost/».

Этот атрибут определяет, будут ли конечные точки, настроенные с помощью привязки BasicHttpBinding, использовать прокси-сервер при доступе к локальным ресурсам. Если значение этого атрибута true, запросы к локальным интернет-ресурсам не используют прокси-сервер. Используйте имя узла (а не localhost), если необходимо, чтобы клиенты проходили через прокси-сервер при взаимодействии со службами на том же компьютере, когда для этого атрибута задано значение true.

Если атрибут имеет значение false, все интернет-запросы выполняются через данный прокси-сервер.

closeTimeout

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

envelopeVersion

Определяет версию протокола SOAP, используемого для сообщений, обрабатываемых этой привязкой. Единственным допустимым значением является «Soap11».

hostnameComparisonMode

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

maxBufferPoolSize

Целое значение, определяющее максимальный объем памяти, выделяемой для диспетчера буферов сообщений, получающих сообщения из канала. Значение по умолчанию — 524288 (0x80000) байт.

Диспетчер буферов сокращает затраты ресурсов на использование буферов с помощью буферного пула. Буферы требуются для обработки службой сообщений, приходящих из канала. Если в буферном пуле недостаточно памяти для обработки потока сообщений, диспетчер буферов сообщений должен выделить дополнительную память из кучи CLR, что увеличивает нагрузку по сбору мусора. Значительное выделение памяти из мусорной кучи CLR указывает на то, что размер буферного пула слишком мал и производительность можно повысить за счет выделения большего объема памяти путем увеличения значения этого атрибута.

maxBufferSize

Целое значение, указывающее максимальный размер (в байтах) буфера, хранящего сообщения во время их обработки для конечной точки, настроенной с использованием этой привязки. Значение по умолчанию — 65 536 байт.

maxReceivedMessageSize

Положительное целое число, определяющее максимальный размер сообщения (в байтах), включая заголовки, которое можно получить по каналу, настроенному с использованием этой привязки. Отправитель получает ошибку SOAP, если размер сообщения оказывается слишком большим для получателя. Получатель отклоняет сообщение и создает запись о событии в журнале трассировки. Значение по умолчанию — 65 536 байт.

messageEncoding

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

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

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

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

name

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

namespace

Задает пространство имен XML привязки. Значение по умолчанию — «http://tempuri.org/Bindings». Каждая привязка имеет атрибуты name и namespace, которые совместно однозначно идентифицируют привязку в метаданных службы.

openTimeout

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

proxyAddress

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

receiveTimeout

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

sendTimeout

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

textEncoding

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

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

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

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

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

transferMode

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

useDefaultWebProxy

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

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

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

<security> для <basicHttpBinding>

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

<readerQuotas>

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

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

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

<bindings>

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

Замечания

Привязка BasicHttpBinding использует протокол HTTP в качестве транспорта для отправки сообщений протокола SOAP 1.1. Служба может использовать эту привязку для предоставления конечных точек, соответствующих профилю WS-I BP 1.1, например тех, что используют клиенты ASMX. Аналогично клиент может использовать привязку BasicHttpBinding для взаимодействия со службами, предоставляющими конечные точки, которые соответствуют требованиям профиля WS-I BP 1.1, например веб-службами ASMX или службами, настроенными с использованием привязки BasicHttpBinding.

По умолчанию система безопасности отключена, но может быть добавлена присвоением атрибуту режима дочернего элемента <security> для <basicHttpBinding>None значения, отличного от . По умолчанию используется кодировка сообщений «Text» и кодировка текста «UTF-8».

Пример

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

<system.serviceModel> 
  <services>
    <service 
        type="Microsoft.ServiceModel.Samples.CalculatorService"
        behaviorConfiguration="CalculatorServiceBehavior">
       <endpoint address=""
             binding="basicHttpBinding"
             bindingConfiguration="Binding1" 
             contract="Microsoft.ServiceModel.Samples.ICalculator" />
    </service>
  </services>
  <bindings>
     <basicHttpBinding>
        <binding name="Binding1" 
               hostNameComparisonMode="StrongWildcard" 
               receiveTimeout="00:10:00"
               sendTimeout="00:10:00"
               openTimeout="00:10:00"
               closeTimeout="00:10:00"
               maxReceivedMessageSize="65536" 
               maxBufferSize="65536" 
               maxBufferPoolSize="524288" 
               transferMode="Buffered" 
               messageEncoding="Text" 
               textEncoding="utf-8"
               bypassProxyOnLocal="false"
               useDefaultWebProxy="true" >
              <security mode="None" />
         </binding>
     </basicHttpBinding>
  </bindings>
</system.serviceModel>

Начиная с версии .NET Framework 4 для привязок и поведений необязательно задавать имена. Задачи предыдущего примера можно выполнить, удалив bindingConfiguration из адреса конечной точки и имя frm из привязки.

<system.serviceModel> 
  <services>
    <service 
        type="Microsoft.ServiceModel.Samples.CalculatorService"
        behaviorConfiguration="CalculatorServiceBehavior">
       <endpoint address=""
             binding="basicHttpBinding"
             contract="Microsoft.ServiceModel.Samples.ICalculator" />
    </service>
  </services>
  <bindings>
     <basicHttpBinding>
        <binding 
               hostNameComparisonMode="StrongWildcard" 
               receiveTimeout="00:10:00"
               sendTimeout="00:10:00"
               openTimeout="00:10:00"
               closeTimeout="00:10:00"
               maxReceivedMessageSize="65536" 
               maxBufferSize="65536" 
               maxBufferPoolSize="524288" 
               transferMode="Buffered" 
               messageEncoding="Text" 
               textEncoding="utf-8"
               bypassProxyOnLocal="false"
               useDefaultWebProxy="true" >
              <security mode="None" />
         </binding>
     </basicHttpBinding>
  </bindings>
</system.serviceModel>

Дополнительные сведения о конфигурации по умолчанию и о безымянных привязках и поведениях см. в разделах Simplified Configuration и Simplified Configuration for WCF Services.

См. также

Справочник

Binding
BindingElement
BasicHttpBinding
BasicHttpBindingElement

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

<binding>

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

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