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


WSHttpBinding

В примере wsHttp показано, как реализовать типичную службу и типичный клиент с помощью Windows Communication Foundation (WCF). Этот пример состоит из клиентской консольной программы (client.exe) и библиотеки служб, размещенной службами IIS. Служба реализует контракт, определяющий шаблон связи с запросом и ответом. Контракт определяется интерфейсом ICalculator , который предоставляет математические операции (добавление, вычитание, умножение и деление). Клиент выполняет синхронные запросы к заданной математической операции, и служба отвечает результатом. Действие клиента отображается в окне консоли.

Замечание

Процедура установки и инструкции по сборке для этого примера находятся в конце этого раздела.

Этот пример опубликовывает ICalculator контракт с помощью <wsHttpBinding>. Конфигурация этой привязки была расширена в файле Web.config.

<bindings>
  <wsHttpBinding>
    <!--The following is the expanded configuration section for a-->
    <!--WSHttpBinding. Each property is configured with the default-->
    <!--value. See the ReliableSession, TransactionFlow, -->
    <!--TransportSecurity, and MessageSecurity samples in the WS -->
    <!--directory to learn how to configure these features. -->
    <binding name="Binding1"
              bypassProxyOnLocal="false"
              transactionFlow="false"
              hostNameComparisonMode="StrongWildcard"
              maxBufferPoolSize="524288"
              maxReceivedMessageSize="65536"
              messageEncoding="Text"
              textEncoding="utf-8"
              useDefaultWebProxy="true"
              allowCookies="false">
      <reliableSession ordered="true"
                       inactivityTimeout="00:10:00"
                       enabled="false" />
      <security mode="Message">
        <message clientCredentialType="Windows"
                 negotiateServiceCredential="true"
                 algorithmSuite="Default"
                 establishSecurityContext="true" />
      </security>
    </binding>
  </wsHttpBinding>
</bindings>

В базовом binding элементе maxReceivedMessageSize значение позволяет настроить максимальный размер входящего сообщения (в байтах). Значение hostNameComparisonMode позволяет настроить, учитывается ли имя хоста при демультиплексировании сообщений в службу. Это messageEncoding значение позволяет настроить, следует ли использовать кодировку Text или MTOM для сообщений. Значение textEncoding позволяет настроить кодировку символов для сообщений. Значение bypassProxyOnLocal позволяет настроить, следует ли использовать http-прокси для локального взаимодействия. Значение transactionFlow определяет, выполняется ли текущая транзакция (если операция настроена для потока транзакций).

В элементе <reliableSession> включенное логическое значение определяет, включены ли надежные сеансы. Значение ordered настраивает сохранение порядка сообщений. Значение inactivityTimeout настраивает время простоя сеанса перед сбоем.

<В разделе безопасности>mode значение определяет, какой режим безопасности следует использовать. В этом примере используется безопасность сообщений, поэтому <сообщение> указывается внутри <системы безопасности>.

При запуске примера запросы и ответы операции отображаются в окне консоли клиента. Нажмите клавишу ВВОД в окне клиента, чтобы завершить работу клиента.

Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714

Press <ENTER> to terminate client.

Настройка, сборка и запуск примера

  1. Установите ASP.NET 4.0 с помощью следующей команды.

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Убедитесь, что вы выполнили процедуру настройки One-Time для образцов Windows Communication Foundation.

  3. Чтобы создать версию решения на C# или Visual Basic .NET, следуйте инструкциям по сборке примеров Windows Communication Foundation .

  4. Чтобы запустить пример в конфигурации с одним или несколькими компьютерами, следуйте инструкциям в запуска примеров Windows Communication Foundation.