4

We are building a common WCF Service which is being used by two different types of clients, ones which will use the normal Two way http binding, while the other ones will use the MSMQ binding, as the MSMQ Binding means that we can only do One Way Messages, according to this scenario my questions are

  1. what is the possibility of using the same contract for both the clients while the contract will have the messages with the Both Way communications.

  2. Is there a way that we can achieve the Two Way communication on the MSMQ.

  3. What if the MSMQ is being used only for the Guaranteed Delivery, What can be alternatives for Guaranteed Delivery, where the Server and clients can have a flaky connection in between them.

asifch
  • 312
  • 4
  • 15

1 Answers1

3
  1. There is no possibility. You need two service contracts - one for MSMQ and one for HTTP.
  2. No. Two way over MSMQ = one queue for service and one queue for each client where client exposes its own MSMQ service to read messages from his queue.
  3. Guaranteed delivery is available only for MSMQ because that guarantee is not only about flaky connection but also about not running service (messages are kept in queue until service is up and running). If you need to deal with flaky connection over HTTP you need WS-Reliable messaging (available for custom bindings or wsHttpBinding) but it is not the same as guaranteed delivery because it works only if both server and client are running.
Ladislav Mrnka
  • 360,892
  • 59
  • 660
  • 670
  • That's pretty much clear, but what we want to achieve is to use the single contract for all clients which removes the MSMQ from the options and have some sort of Guaranteed Delivery, so what is the best way the achieve this. – asifch Aug 03 '11 at 10:08
  • 1
    There is no option. There is no out-of-the-box solution allowing what you want. What is a problem with two contracts? – Ladislav Mrnka Aug 03 '11 at 10:10