Khi tạo điểm cuối NServiceBus SendOnly, mục đích là chỉ cần kích hoạt và quên, tức là chỉ cần gửi một tin nhắn và sau đó một người khác sẽ chăm sóc nó. Có vẻ như điều tôi cần. Tôi không muốn bất kỳ thông tin liên lạc nào giữa xe buýt và hệ thống xử lý tin nhắn. Hệ thống "A" muốn thông báo cho hệ thống "B" về điều gì đó.SendOnly trong NServiceBus
Cũng tạo ra điểm cuối SendOnly nếu rất đơn giản nhưng hệ thống nghe tin nhắn từ điểm cuối SendOnly.
Tôi đang cố thiết lập trình nghe trong dự án dòng lệnh sẽ xử lý thư. Các tin nhắn được gửi đến hàng đợi nhưng chúng không được xử lý bởi hệ thống "B".
Đây có phải là cách tiếp cận sai không? Xe buýt có quá tải cho loại chức năng này không?
Hệ thống 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);
}
}
}
Hệ thống 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; }
}
Bạn đã thêm MessageEndpointMappings vào app.config của người gửi chưa? Ngoài ra, bạn đang sử dụng phiên bản NServiceBus nào? –
xin lỗi, quên .configs MessageEndpointMappings> UnicastBusConfig> Tôi đang sử dụng NserviceBus 3.0.3 –