У меня есть служба обратного вызова, которая размещается поверх wsDualHttpBinding. Я хочу добавить клиента, который будет опросить данные, а не получать обратный вызов (будет мобильное устройство, использующее wince для демонстрационных целей). Мне было любопытно, что лучший способ сделать это? Вы не можете создать прокси-сервер клиента с помощью NetCFSvcUtil с сервисом, размещенным с помощью wsDualHttpBinding (я это понимаю), но вы не можете размещать службу обратного вызова через basicHttpBinding. Мне действительно нужна такая же служба, размещенная над basicaHttpBinding (клиенты будут опроса для данных) и wsDualHttpBinding (обратный вызов будет уведомлять клиентов о данных). Любые идеи по наилучшему способу справиться с этим, не создавая двух отдельных сервисов для размещения одних и тех же данных?Служба обратного вызова WCF, размещенная поверх basicHttpBinding и wsDualHttpBinding
ответ
Что вы подразумеваете под двумя отдельными службами, принимающими одни и те же данные? Ожидаете ли вы использовать один экземпляр службы для обработки запросов wsDualHttpBinding и basicHttpBinding?
Ваша текущая проблема заключается в том, что служебный интерфейс для двусторонней связи не может использоваться для basicHttpBinding. Вы должны создать второй контракт на обслуживание и реализовать его в одной службе. В этом случае вы можете открыть две конечные точки для службы: один дуплекс с WSDualHttpBinding и один с BasicHttpBinding. Конечные точки должны иметь разные относительные адреса. С точки зрения клиента эти конечные точки являются отдельными службами - для каждого из них требуется отдельный клиентский прокси. Поэтому, если ваша служба не является singleton, у вас будет новый экземпляр службы для каждого клиентского прокси. Новый экземпляр службы означает отсутствие обмена данными.
Thera - это некоторые возможности для изменения этого поведения, но это означает замену экземпляра провайдера.
- 1. WCF IIS-размещенная служба wsHttpBinding - svcutil создает прокси с basicHttpBinding!
- 2. Как WsDualHttpBinding знает о канале обратного вызова?
- 3. Служба WCF, размещенная на IIS, не работает
- 4. Служба обратного вызова WCF для клиента php
- 5. отладки asp.net WCF служба, размещенная в IIS
- 6. Служба WCF, размещенная на общем хосте
- 7. WCF + SSL wsDualHttpBinding или netTcpBinding
- 8. Служба WCF, размещенная в службе Windows
- 9. Служба WCF, размещенная в консольном приложении
- 10. Служба сеанса WCF, размещенная в приложении ASP.NET MVC 2.0
- 11. WCF wsdualhttpbinding клиент без повышения
- 12. TransactionScope и WCF обратного вызова
- 13. Служба WCF, размещенная IIS 7 и глобальными переменными (одиночные числа)
- 14. Почему моя служба WCF, размещенная в WinForm, имеет один поток?
- 15. WCF BasicHttpBinding и HTTP прокси
- 16. EndpointNotFoundException при создании обратного вызова службы WCF
- 17. Функция обратного вызова WCF MSMQ
- 18. Служба WCF, размещенная в службе Windows - неправильное/ожидаемое пространство имен
- 19. Служба обратного вызова WCF Подписаться \ Отказаться от подписки
- 20. Реализация обратного вызова WCF: служба последовательно возвращает нулевой контекст операции
- 21. Служба WCF, размещенная в Topshelf, занимает много времени, чтобы закрыть
- 22. Служба обратного вызова Twitch API
- 23. wcf wsDualHttpBinding проблемы безопасности между страницей ASP.NET и веб-службой
- 24. WCF тайм-аута обратного вызова и Visual Studio катастрофический отказ
- 25. Защита WCF, размещенная внутри общедоступного MVC2 App
- 26. Служба WCF, размещенная в службе Windows. Какую работу нужно выполнять?
- 27. Где служба WCF, размещенная в службе Windows, считывает ее конфигурацию?
- 28. Служба WCF, размещенная в службе Windows, не работает
- 29. Служба WCF, размещенная на IIS, запущенная в контексте физического каталога
- 30. Как определить, работает ли служба WCF, размещенная в приложении консоли?
Спасибо. Множественные контракты на обслуживание для одной и той же услуги, похоже, были тем, что мне не хватало. Я хотел бы, чтобы мой сервис являлся сервисом singleton, и кажется, что клиенты, использующие услугу обратного вызова, не «делят» данные с клиентами, используя контракт на отказ от обратного вызова. Не следует ли хранить те же данные независимо от контракта, который использует клиент? У меня есть InstanceContextMode = InstanceContextMode.Single, и он работал до того, когда клиенты поделились одним и тем же контрактом на обслуживание. Спасибо за вашу помощь. – Sean