我开始使用NServiceBus并对Pubsub示例有疑问。
我的目的是让Publisher1的多个实例运行并接收发布者发送的消息。我还攻击了Publisher只发送eventMessage类型的消息。
但是,如果我启动发布者和Subscriber1的三个实例,则其中只有一个实时获取消息。
为什么?是配置设置还是别的什么?
这是我尝试过的,它会返回异常“启动端点时出现异常,已记录错误。原因:在配置组件之前无法配置属性。请先调用'配置'。”:
using NServiceBus;
namespace Subscriber1
{
public class EndpointConfig : IConfigureThisEndpoint, AsA_Server
{
}
public class OverrideInputQueue : IWantCustomInitialization
{
public void Init()
{
Configure
.Instance
.Configurer
.ConfigureProperty<NServiceBus.Config.MsmqTransportConfig>(t => t.InputQueue, "testQueue");
}
}
}
/ J
答案 0 :(得分:1)
NServiceBus假定每个进程有一个输入队列。确保为每个订户配置了唯一的输入队列。如果不是全部三个将轮询相同的队列,产生您正在描述的行为。
要做到这一点,您可能需要将粘贴sub1复制到3个不同的文件夹,修改app.config并启动它们。
希望这有帮助!
答案 1 :(得分:0)
你应该使用它 -
Configure.Instance.Configurer.ConfigureProperty<NServiceBus.Unicast.Transport.Msmq.MsmqTransport>(msmq => msmq.InputQueue, "SomeQueueHere");
请确保您使用 MsmqTransport 而不是 MsmqTransportConfig 。