Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В примере DualHttp показано, как настроить привязку WSDualHttpBinding
. Этот пример состоит из клиентской консольной программы (.exe) и библиотеки служб (.dll), размещенной службами IIS. Служба реализует дуплексный контракт. Контракт определяется интерфейсом ICalculatorDuplex
, который предоставляет математические операции (добавление, вычитание, умножение и деление). В этом примере ICalculatorDuplex
интерфейс позволяет клиенту выполнять математические операции, постоянно вычисляя текущий результат в течение сеанса. Независимо служба возвращает результаты интерфейса ICalculatorDuplexCallback
. Для дуплексного контракта требуется сеанс, так как необходимо установить контекст для сопоставления набора сообщений, отправляемых между клиентом и службой. Привязка WSDualHttpBinding
поддерживает дуплексное взаимодействие.
Замечание
Процедура установки и инструкции по сборке для этого примера находятся в конце этого раздела.
Чтобы настроить конечную точку службы с помощью WSDualHttpBinding
, укажите привязку в конфигурации конечной точки, как показано.
<endpoint address=""
binding="wsDualHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculatorDuplex" />
На клиенте необходимо настроить адрес, который сервер может использовать для подключения к клиенту, как показано в следующем примере конфигурации.
<system.serviceModel>
<client>
<endpoint address=
"http://localhost/servicemodelsamples/service.svc"
binding="wsDualHttpBinding"
bindingConfiguration="Binding1"
contract="Microsoft.ServiceModel.Samples.ICalculatorDuplex" />
</client>
<bindings>
<!-- Configure a WSDualHttpBinding that supports duplex -->
<!-- communication. -->
<wsDualHttpBinding>
<binding name="Binding1"
clientBaseAddress="http://localhost:8000/myClient/"
useDefaultWebProxy="true"
bypassProxyOnLocal="false">
</binding>
</wsDualHttpBinding>
</bindings>
</system.serviceModel>
При запуске примера запросы и ответы операции отображаются в окне консоли клиента. Нажмите клавишу ВВОД в окне клиента, чтобы завершить работу клиента.
Press <ENTER> to terminate client once the output is displayed.
Result(100)
Result(50)
Result(882.5)
Result(441.25)
Equation(0 + 100 - 50 * 17.65 / 2 = 441.25)
При запуске примера вы увидите сообщения, которые возвращаются клиенту через интерфейс обратного вызова от службы. Каждый промежуточный результат отображается, за которым следует все уравнение после завершения всех операций. Нажмите клавишу ВВОД, чтобы выключить клиента.
Настройка, сборка и запуск примера
Установите ASP.NET 4.0 с помощью следующей команды.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
Убедитесь, что вы выполнили процедуру настройки One-Time для образцов Windows Communication Foundation.
Чтобы создать версию решения на C# или Visual Basic .NET, следуйте инструкциям по сборке примеров Windows Communication Foundation .
Чтобы запустить пример в конфигурации с одним или несколькими компьютерами, следуйте инструкциям в запуска примеров Windows Communication Foundation.
Это важно
При запуске клиента в конфигурации для взаимодействия между машинами обязательно замените localhost в
address
атрибуте <конечной точки> элемента клиента<> иclientBaseAddress
атрибуте <элемента привязки><wsDualHttpBinding> именем соответствующего компьютера, как показано.<client> <endpoint name = "" address= "http://service_machine_name/servicemodelsamples/service.svc" /> </client> ... <wsDualHttpBinding> <binding name="DuplexBinding" clientBaseAddress= "http://client_machine_name:8000/myClient/"> </binding> </wsDualHttpBinding>