WCF, Silverlight: возможен ли запрос / ответ через PollingDuplexHttpBinding? - PullRequest
3 голосов
/ 31 марта 2010

Мы использовали 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).

Может кто-нибудь прояснить это для меня? Возможно ли это?

1 Ответ

2 голосов
/ 21 февраля 2011

Мы никогда не заставляли это работать. Мы используем BasicHttpBinding для всех наших операций запроса / ответа между нашими приложениями Silverlight 4 и нашими службами WCF 4. Это все асинхронные вызовы методов (должны быть с Silverlight) для сервисов Per-Call. Для пары ситуаций, когда мы должны выполнить push-запрос на сервер, у нас есть служба Sessionful WCF, поддерживающая соединение PollingDuplexHttpBinding с клиентом Silverlight, и мы используем контракты обратного вызова с односторонними методами для выполнения вызовов.

Не удалось заставить операции Запрос / Ответить работать с PollingDuplexHttpBinding, но также не удалось найти авторитет по этому вопросу ...

...