我正在尝试从 MassTransit 项目运行一些示例代码:
var bus = ServiceBusFactory.New(sbc =>
{
sbc.UseMsmq().Validate();
sbc.ReceiveFrom("msmq://localhost/app1_queue");
sbc.UseMulticastSubscriptionClient();
sbc.Subscribe(s=>
{
s.Handler<CustomMessage>(msg => { Console.WriteLine(msg.Body); });
});
});
当我现在只是F5
在 Visual Studio 中时,我得到以下异常:
MessageQueueException: The queue does not exist or you do not have
sufficient permissions to perform the operation.
MessageQueueErrorCode: System.Messaging.MessageQueueErrorCode.QueueNotFound
我在管理控制台中检查了 MessageQueues,确实看到队列不存在。但是,如果我运行 TestApp1.exe,一切正常并创建队列。回到 Visual Studio,仍然是同样的错误(但队列现在可用。)
我试过设置队列的安全性(每个人都可以完全访问),但它没有改变。
我究竟做错了什么?为什么我不能从 Visual Studio 中运行它?
编辑
我已经安装RabbitMQ
并更新了代码:
sbc.UseRabbitMq();
sbc.ReceiveFrom("rabbitmq://localhost/app1_queue");
它有效。
问题仍然存在:msmq 有什么问题?我宁愿继续使用它。