Masstransit:无法在Visual Studio中运行代码(QueueNotFound)
本文关键字:代码 运行 QueueNotFound Studio Visual Masstransit | 更新日期: 2023-09-27 18:14:53
我正试图从masstrtransit项目运行一些示例代码:
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有什么问题?
访问和操作MSMQ需要Windows授权(和UAC)。除非你以更高的权限运行VS,否则你可能没有权限。我不确定具体细节,但请尝试授予您的帐户创建和修改队列的权限。