當創建一個NServiceBus SendOnly端點時,其目的僅僅是發送一個消息,然後由其他人來處理。這似乎是我需要的東西。我不想在總線和系統處理消息之間進行任何通信。系統「A」想要通知系統「B」某事。SendOnly in NServiceBus
那麼創建一個SendOnly端點如果非常簡單,但是系統如何偵聽來自SendOnly端點的消息。
我想在處理消息的命令行項目中設置一個監聽器。消息被髮送到隊列,但它們不會被系統「B」處理。
這是錯誤的方法?對於這種類型的功能,總線是否過度殺傷?
系統A:
public class Program
{
static void Main(string[] args)
{
var container = new UnityContainer();
var bus = Configure.With()
.UnityBuilder(container)
.JsonSerializer()
.Log4Net()
.MsmqTransport()
.UnicastBus()
.SendOnly();
while(true)
{
Console.WriteLine("Send a message");
var message = new Message(Console.ReadLine());
bus.Send(message);
}
}
}
系統B:
class Program
{
static void Main(string[] args)
{
var container = new UnityContainer();
var bus = Configure.With()
.UnityBuilder(container)
.JsonSerializer()
.Log4Net()
.MsmqTransport()
.UnicastBus()
.LoadMessageHandlers()
.CreateBus()
.Start();
Console.WriteLine("Waiting for messages...");
while(true)
{
}
}
}
public class MessageHandler : IHandleMessages<Message>
{
public void Handle(Message message)
{
Console.WriteLine(message.Data);
}
}
public class Message : IMessage
{
public Message()
{
}
public Message(string data)
{
Data = data;
}
public string Data { get; set; }
}
你有沒有在發件人的app.config中添加的MessageEndpointMappings?此外,該NServiceBus的版本,您使用的? – 2012-04-17 10:12:24
抱歉,忘記了.configs <添加消息= 「DLL」 端點= 「QUEUENAME」/> MessageEndpointMappings> UnicastBusConfig> 我使用NserviceBus 3.0.3 –
2012-04-17 10:13:10