首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RabbitMQ连接拒绝127.0.0.1:5672

RabbitMQ连接拒绝127.0.0.1:5672
EN

Stack Overflow用户
提问于 2020-09-28 05:50:38
回答 2查看 7.1K关注 0票数 5

我正在准备一个简单的ASP.NET Core应用程序。

我已经在笔记本电脑上安装了RabbitMQ服务器。RabbitMQ管理UI运行在localhost:15672上。

兔子MQ集群名类似于:rabbit@CR00001.ABC.COM.LOCAL

我正试图在控制器中向兔子发送信息。但是我得到的是,没有一个指定的端点是可到达的错误。

如果我使用'localhost‘作为主机名,则在内部异常中拒绝连接127.0.0.1:5672

如果我使用rabbit作为主机名,则会得到名称或服务(不知道)。

我试着根据其他的StackOverflow问题来解决这个问题,但是没有一个能解决我的问题。

家庭控制器:

代码语言:javascript
运行
复制
        [HttpPost]
        public void SendMessage([FromBody]Message message)
        {
            try
            {
                var factory = new ConnectionFactory()
                {
                    UserName = _username,
                    Password = _password,
                    HostName = _hostname,
                    VirtualHost = "/",
                    Port = _port,
                };
                using (var connection = factory.CreateConnection())
                using (var channel = connection.CreateModel())
                {
                    channel.QueueDeclare(queue: _queueName,
                                         durable: false,
                                         exclusive: false,
                                         autoDelete: false,
                                         arguments: null);

                    var body = Encoding.UTF8.GetBytes(message.Text);

                    channel.BasicPublish(exchange: "",
                                         routingKey: _queueName,
                                         basicProperties: null,
                                         body: body);
                }

            }
            catch (Exception ex)
            {

            }
        }

appsettings.json

代码语言:javascript
运行
复制
{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "RabbitMq": {
    "Hostname": "localhost",
    "QueueName": "WordQueue",
    "UserName": "test",
    "Password": "test",
    "Port": 5672
  }
}

以下是兔子MQ管理UI中的测试用户配置

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-28 07:14:22

您是否在UI门户中设置了test用户?这可能是连接拒绝错误的原因。您可以通过http://localhost:15672/#/users设置用户。

您还应该调试您的factory以检查您的配置值是否被正确传递。

我还建议您在捕获中弹出一些代码,以确保不会丢失异常。

http://rabbit的引用用于容器中。只有当您在容器化网络中运行ASPNET和兔子应用程序(例如,Docker )时,这些程序才能工作。我发现使用容器是学习RabbitMq的更好的方法。

如果你不熟悉集装箱化,我建议你看一下沃尔夫冈奥夫纳https://www.programmingwithwolfgang.com/rabbitmq-in-an-asp-net-core-3-1-microservice/的这篇文章(以及相关系列),以及YouTube https://www.youtube.com/watch?v=Kyx2PsuwomE上布拉德特拉弗西的“码头入门”。

票数 2
EN

Stack Overflow用户

发布于 2021-12-28 12:59:31

创建用户后,不要忘记设置权限、基本权限、

  • 可以访问虚拟主机(/)

  • 设置主题权限(AMQP默认)注意:当然,您可以在此操作中使用rabbitmq (创建用户和权限)。

变量工厂=新ConnectionFactory() { HostName = "hostname_or_ip_adres_here",UserName=“用户名在这里..”,Password="psw here.“};

这会成功的!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64096600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档