Мы использовали PollingDuplexHttpBinding
в течение некоторого времени для Pub/Sub
обмена сообщениями. У нас есть методы, которые не возвращают результаты, которые позволяют клиентам подписаться на некоторый поток данных, а затем служба возвращает данные через CallBack
контракты.
Только что мы добавили несколько Request/Reply
методов к нашему OperationContract
. Поскольку клиенты Silverlight 3, эти методы вызываются с использованием шаблона async Begin() End()
. Проблема в том, что мы не можем заставить это работать, используя PollingDuplexHttpBinding
. Мы всегда получаем следующую ошибку (когда используется стек HTTP клиента):
Сервер не предоставил значимого ответа; это может быть вызвано несоответствием контракта, преждевременным завершением сеанса или внутренней ошибкой сервера.
С помощью стека браузера мы получаем HTTP 500: Not Found.
При переключении на BasicHttpBinding
методы Request/Reply
вызываются совершенно нормально, но, очевидно, методы Pub/Sub
нельзя использовать с этой привязкой.
Мы могли бы использовать две отдельные конечные точки для каждого типа сообщений, но предпочли бы нет, и мне кажется странным, что привязка будет поддерживать только шаблон Pub/Sub
(даже если это мотивация для PollingDuplexHttpBinding
).
Может кто-нибудь прояснить это для меня? Возможно ли это?