NServiceBus中的多个订户

NServiceBus中的多个订户,nservicebus,publish-subscribe,Nservicebus,Publish Subscribe,我正在开始使用NServiceBus,对Pubsub示例有一个问题 我的意图是让Publisher1的多个实例运行并接收从发布者发送的消息。我还入侵了发布服务器,只发送eventMessage类型的消息 但是如果我启动publisher和Subscriber1的三个实例,一次只能有一个得到消息 为什么呢?是配置设置还是其他什么 这是我尝试过的返回异常“启动端点时异常,已记录错误。原因:在配置组件之前无法配置属性。请先调用“配置”。: 使用NServiceBus; 命名空间订阅1 { 公共类End

我正在开始使用NServiceBus,对Pubsub示例有一个问题

我的意图是让Publisher1的多个实例运行并接收从发布者发送的消息。我还入侵了发布服务器,只发送eventMessage类型的消息

但是如果我启动publisher和Subscriber1的三个实例,一次只能有一个得到消息

为什么呢?是配置设置还是其他什么

这是我尝试过的返回异常“启动端点时异常,已记录错误。原因:在配置组件之前无法配置属性。请先调用“配置”。:

使用NServiceBus;
命名空间订阅1
{
公共类EndpointConfig:IConfigureHiseEndpoint,AsA_服务器
{
}
公共类重写InputQueue:IWantCustomInitialization
{
公共void Init()
{
配置
.例如
.配置器
.ConfigureProperty(t=>t.InputQueue,“testQueue”);
}
}
}

/J

NServiceBus假定每个进程有一个输入队列。确保每个订阅服务器都配置了唯一的输入队列。如果不是,这三个队列都将轮询同一个队列,生成您描述的行为

为此,您可能需要将paste sub1复制到3个不同的文件夹中,修改app.config并启动它们

希望这有帮助

你应该用这个-

Configure.Instance.Configurer.ConfigureProperty<NServiceBus.Unicast.Transport.Msmq.MsmqTransport>(msmq => msmq.InputQueue, "SomeQueueHere");
Configure.Instance.Configurer.ConfigureProperty(msmq=>msmq.InputQueue,“SomeQueueHere”);

确保您使用的是MsmqTransport,而不是您提到的MsmqTransportConfig

是的。但是,我必须以某种方式通过编程设置队列。正确的??我发现类似这样的东西:Configure.Instance.Configurer.ConfigureProperty(t=>t.InputQueue,yourDynamicQueue)。。但无法让它工作。任何提示??是的,如果您无法复制粘贴文件夹并修改单独的app.config,则必须以编程方式进行设置。看看这里:你能提供一些更多的细节,你正试图实现这一切吗?如果是关于分配负载,您应该考虑使用分发服务器:我想要的是,当某些事件发生时,同一客户机的多个实例都接收消息。可能当有人创建客户时,所有客户机都会收到关于该客户的新闻快讯。但由于我刚刚开始,可能pubsub示例不是此场景的正确“模板”。您需要以编程方式在IWantCustomInitialization类中设置输入队列,该类与IConfigureThisEndpoint类不同。
Configure.Instance.Configurer.ConfigureProperty<NServiceBus.Unicast.Transport.Msmq.MsmqTransport>(msmq => msmq.InputQueue, "SomeQueueHere");