在NServiceBus中,您可以创建一个SendOnly总线,这意味着它只会将消息发送到另一个服务。在我看来,这应该不需要本地队列的发送服务,但我一直无法配置此。SendOnly模式,没有本地队列
var bus = Configure.With()
.DefiningCommandsAs(t => typeof(MyNamespace.Messaging.Markers.ICommand).IsAssignableFrom(t))
.DefaultBuilder()
.XmlSerializer()
.MsmqTransport()
.UnicastBus()
.SendOnly();
给出了以下异常:
无法生成任何端点名称,请注明使用Configure.DefineEndpointName(...)
自己 约定虽然我能解决这个问题通过增加一个.DefineEndpointName
它似乎可怜的形式为这个服务创建一个队列,因为它永远不会被实际使用。
是否有避免需要为仅发送总线创建本地队列的方法,如果不是,为什么在此模式下需要此本地队列?
我很确定有一个DoNotCreateQueues()或类似的可用,如果你添加它会发生什么? – 2013-02-27 20:45:20
@AdamFyles我不知道那是在那里,它看起来非常有前途,但不幸的是,我将它添加到配置后仍然出现相同的错误。 – 2013-02-27 20:49:10
这应该工作没有'.DefineEndpointName(...)'(测试对v3.3.5),请参阅[sendonly示例](https://github.com/NServiceBus/NServiceBus/blob/master/Samples/SendOnlyEndpoint/SendOnlyEndpoint。自定义/ Program.cs中)。你正在运行什么版本的NServiceBus? – 2013-02-28 02:06:30