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
позволяет задать кодирование сообщений (текст или 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.
Настройка, сборка и выполнение образца
Установите ASP.NET 4.0 с помощью следующей команды.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
Убедитесь, что вы выполнили процедуру однократной установки для примеров Windows Communication Foundation.
Чтобы создать выпуск решения на языке C# или Visual Basic .NET, следуйте инструкциям в разделе Building the Windows Communication Foundation Samples.
Чтобы запустить пример в конфигурации с одним или несколькими компьютерами, следуйте инструкциям в разделе "Примеры Windows Communication Foundation".