MSMQ to WCF, обеспечивающий двустороннюю связь - PullRequest
4 голосов
/ 03 августа 2011

Мы создаем общую службу WCF, которая используется двумя различными типами клиентов, один из которых будет использовать обычную двустороннюю HTTP-привязку, а другие будут использовать MSMQ-привязку, поскольку MSMQ-привязка означает, что мы можем только делаю Односторонние Сообщения, в соответствии с этим сценарием мои вопросы

  1. какова возможность использования одного и того же контракта для обоих клиентов, в то время как в контракте будут сообщения с двусторонней связью.

  2. Есть ли способ достичь двусторонней связи на MSMQ.

  3. Что, если MSMQ используется только для Гарантированной доставки, Какие могут быть альтернативы для Гарантированной доставки, когда между Сервером и клиентами может быть нестабильное соединение между ними.

1 Ответ

3 голосов
/ 03 августа 2011
  1. Нет возможности. Вам нужны два сервисных контракта - один для MSMQ и один для HTTP.
  2. Нет. Двухстороннее MSMQ = одна очередь для службы и одна очередь для каждого клиента, где клиент предоставляет собственную службу MSMQ для чтения сообщений из своей очереди.
  3. Гарантированная доставка доступна только для MSMQ, поскольку эта гарантия касается не только нестабильного соединения, но и неработающего сервиса (сообщения хранятся в очереди до тех пор, пока сервис не будет запущен и работает). Если вам нужно иметь дело с нестабильным соединением по HTTP, вам нужен WS-Reliable Messaging (доступный для пользовательских привязок или wsHttpBinding), но это не то же самое, что гарантированная доставка, потому что он работает, только если работают и сервер, и клиент.
...