访问被拒绝创建的交换

ze-*_*rps 2 c# rabbitmq

我是使用 c# 的rabbitmq 新手。我们正在尝试为 epex spot 创建 API,它在传输标签协议中使用 AMQP,并为此使用 Rabbitmq。

我可以使用提供的凭据连接到 epex spot 的服务器。 ConnectionFactory factory = new RabbitMQ.Client.ConnectionFactory(); 能够创建频道

using (IConnection conn = factory.CreateConnection())
{
    using (IModel channel = conn.CreateModel())
    {
Run Code Online (Sandbox Code Playgroud)

但是当我尝试 DeclareExchange 或 DeclareQueue 时,我收到错误说明:

AMQP 操作被中断:AMQP close-reason,由 Peer 发起,code=403,text="ACCESS_REFUSED - access to exchange 'M7.broadcastQueue.username' in vhost 'app' denied for user 'username'", classId=60 , 方法 ID=40

如果我尝试联系 epexspot 并请求许可,他们会说我们拥有所有必要的许可。你们能帮我解决这个问题吗,或者如果有人以前遇到过类似的问题?

Luk*_*ken 6

您的权限设置不正确。必须运行此命令才能执行此操作:

rabbitmqctl set_permissions -p app username '.*' '.*' '.*'
Run Code Online (Sandbox Code Playgroud)

“epexspot”没有正确设置它们,或者试图限制该用户的读/写/配置权限。

我假设也是你的信息。解决后,请在您提出此问题的所有地方跟进有关解决方案的详细信息,以便其他人可以从中学习。


注:在RabbitMQ的团队监控rabbitmq-users邮件列表,只有时StackOverflow上回答问题。

  • 注意:使用 RabbitMQ GUI 发布测试消息,我首先得到“访问被拒绝。”,然后在使用“set_permissions”后,我得到“403 ACCESS_REFUSED - 访问交换‘XXXX in vhost ’/’拒绝用户’admin’` - 我有用双引号重新发出命令(Windows 环境,标准 CMD): `rabbitmqctl set_permissions admin ".*" ".*" ".*"` (2认同)