【问题标题】:How can I handle more than one NServiceBus project in process?如何处理多个正在进行的 NServiceBus 项目?
【发布时间】:2011-12-25 21:51:19
【问题描述】:

我有一个 WPF 解决方案,它还需要支持从 Queue1 接收消息并将消息发送到 Queue2。我设置了这一切,并且在早期测试中发现它有效。

但是当我合并输入和输出项目时(所以我在输出文件夹中有两个项目程序集)我收到以下错误:

Host 不支持托管多个端点。找到的端点类: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 您的运行时目录中可能有一些旧程序集。

尝试右键单击您的 VS 项目,然后选择“清理”。

我做错了吗?我的 WPF 进程只能处理一个队列吗? (如果是这样的话,似乎不太健壮。)

也许我做错了。我应该从同一个队列发送和接收吗? (这是否有效?队列可以处理多个消息类型吗?)

【问题讨论】:

  • "一个队列可以处理多个消息类型吗?" MSMQ 的唯一类型限制是事务队列中的事务消息和非事务队列中的非事务消息。
  • 是的,NSB 只允许每个物理端点有一个输入队列。你能解释一下这与稳健性有何关系?

标签: c# msmq nservicebus


【解决方案1】:

我看待它的方式是您正在运行的每个进程的队列。 (或者更具体地说,如果您要手动设置应用程序域,则可能不是应用程序域,除非您在 topshelf 搁置下创建多个服务。)是的,同一个队列可以处理不同类型的消息。每个与传入消息类型匹配的处理程序都将被调用以获取传入消息。设置 nservicebus 来查看队列是进程本身的代码/配置的问题,而不是与处理程序等相关的程序集(可能在同一程序集中有进程和处理程序)。只要将要处理的消息发送到该队列,您就只需要一个队列。不确定这是否能满足您的需求,但这就是我认为您只需要一个应用程序域队列的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    相关资源
    最近更新 更多