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有什么问题?

Masstransit:无法在Visual Studio中运行代码(QueueNotFound)

访问和操作MSMQ需要Windows授权(和UAC)。除非你以更高的权限运行VS,否则你可能没有权限。我不确定具体细节,但请尝试授予您的帐户创建和修改队列的权限。