1
votes

I have a WPF solution that also needs to support receiving of messages from Queue1 and sending messages to Queue2. I set this all up and it worked find in early testing.

But when I combined the input and output projects (so I have both projects assemblies in the output folder) I get the following error:

Host doesn't support hosting of multiple endpoints. Endpoint classes found: MySolution.Queue1.EndpointConfig, MyProject.Queue1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null,

MySolution.Queue2.EndpointConfig, MyProject.Queue2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null You may have some old assemblies in your runtime directory.

Try right-clicking your VS project, and selecting 'Clean'.

Am I going about this wrong? Can my WPF process only deal with one queue? (Doesn't seem too robust if that is the case.)

Maybe I am going about this the wrong way. Should I just send and receive from the same queue? (Does that even work right? Can a queue deal with more than one message type?)

1
"Can a queue deal with more than one message type?" The only type restriction for MSMQ is transactional messages in transaction queues and non-transactional messages in non-transactional queues.John Breakwell
Yes NSB only allows you to have one input queue per physical endpoint. Can you explain how that would relate to robustness?Andreas Öhlund

1 Answers

1
votes

the way i look at it is a queue per process you are running. (or app domain more specifically if you are setting up app domains manually - which you probably aren't unless you are creating multiple services under topshelf shelving.) yes, the same queue can handle different types of messages. every handler that matches the type of message that comes in will get called for an incoming message. setting up nservicebus to look at a queue is a concern of the code/configuration for the process itself rather than for the assemblies concerned with handlers and such (could have process and handlers in the same assemblies). you only need one queue as long as the messages to be handled are being sent to that queue. not sure if that answers what you are looking for, but that's how i see the reason you only need one queue for an app domain.