【问题标题】:Access refused to the exchange created拒绝访问创建的交易所
【发布时间】:2018-10-02 19:46:46
【问题描述】:

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

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

using (IConnection conn = factory.CreateConnection())
{
    using (IModel channel = conn.CreateModel())
    {

但是当我尝试 DeclareExchange 或 DeclareQueue 时,我会收到错误提示:

AMQP 操作被中断:AMQP 关闭原因,由 Peer 发起,code=403,text="ACCESS_REFUSED - 用户 'username' 拒绝访问 vhost 'app' 中的交换 'M7.broadcastQueue.username'", classId=60, methodId=40

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

【问题讨论】:

    标签: c# rabbitmq


    【解决方案1】:

    您的权限设置不正确。必须运行此命令才能这样做:

    rabbitmqctl set_permissions -p app username '.*' '.*' '.*'
    

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

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


    注意:RabbitMQ 团队会监控 the rabbitmq-users mailing list,并且有时只会回答 StackOverflow 上的问题。

    【讨论】:

    • 注意:使用 RabbitMQ GUI 发布测试消息我首先得到Access refused.,然后在使用set_permissions 后得到403 ACCESS_REFUSED - access to exchange 'XXXX in vhost '/' refused for user 'admin' - 我不得不重新发出带有双引号的命令(Windows env,标准CMD):rabbitmqctl set_permissions admin ".*" ".*" ".*"
    • 嗯,是的。 Windows 的解析规则与 POSIX shell 不同。
    【解决方案2】:

    连接到服务器时,缺少一些重要信息。没有提供交流等信息。 这些信息使该错误不断出现的授权部分受到影响。

    谢谢

    【讨论】:

    • 我遇到了完全相同的问题!您还必须包含哪些其他信息才能使其正常工作?
    猜你喜欢
    • 2013-11-11
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多