在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