2011-12-22 90 views
1

我有一个WPF解决方案,还需要支持接收来自Queue1的消息并将消息发送到Queue2。我把这一切都设置好了,它在早期测试中找到了。如何处理多个NServiceBus项目?

但是当我结合输入和输出项目(所以我必须在输出文件夹两个项目组件)我得到以下错误:

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'.

我要对这个错误?我的WPF进程只能处理一个队列吗? (如果是这种情况,看起来不太健壮。)

也许我正在对此进行错误的处理。我应该只从同一队列发送和接收吗? (这是否甚至可以正常工作?一个队列可以处理多个消息类型吗?)

+0

“队列能处理多种消息类型吗?” MSMQ的唯一类型限制是事务队列中的事务消息和非事务性队列中的非事务消息。 – 2011-12-22 22:48:22

+0

是NSB只允许您为每个物理端点设置一个输入队列。你能否解释这与健壮性有关? – 2011-12-23 09:31:47

回答

1

我看它的方式是每个进程正在运行的队列。 (或者,如果您手动设置应用程序域,则更具体地说,应用程序域 - 除非您在顶架搁置下创建多个服务,否则您可能不会这样做)。是的,同一个队列可以处理不同类型的消息。每个匹配消息类型的处理程序都会被调用以接收消息。设置nservicebus查看队列是流程本身的代码/配置问题,而不是与处理程序等相关的程序集(可能在同一个程序集中有流程和处理程序)。只要待处理的消息被发送到该队列,您就只需要一个队列。不知道这是否会回答您正在查找的内容,但这就是我如何看到您只需要一个应用程序域队列的原因。