w00*_*977 5 c# rabbitmq docker
我正在尝试将 Docker 与应用程序一起使用。除了 Rabbit MQ 之外,一切似乎都有效。因此,为了创建测试用例,我做了以下操作:
第 1 步 - 在 Docker 外部运行 - 按预期工作
1) 创建一个简单的 ASP.NET Core 2.1 控制台应用程序:
using System;
using RabbitMQ.Client;
namespace DockerRabbitMQ
{
class Program
{
static void Main(string[] args)
{
RabbitMQConnect();
}
public static void RabbitMQConnect()
{
var factory = new ConnectionFactory
{
HostName = "localhost",
UserName = "guest",
Password = "guest"
};
var rabbit = factory.CreateConnection();
}
}
}
Run Code Online (Sandbox Code Playgroud)
2)在本地PC上安装RabbitMQ并通过浏览到: http://localhost:15672来测试它的工作情况。我看到管理门户符合预期,因此它正在运行。
3) 运行控制台应用程序。它按预期运行并完成。
第 2 步 - 在 Docker 内运行
1) 右键单击控制台应用程序并选择:添加/容器编排支持。添加了 DOCKERFILE 和 docker-compose。
2) 将以下内容添加到 Docker Compose:
rabbit:
image: rabbitmq:3-management-alpine
hostname: rabbit
ports:
- "15672:15672"
- "5672:5672"
Run Code Online (Sandbox Code Playgroud)
3) 停止本地 PC 上运行的 Rabbit MQ 服务(该服务是在步骤 1 第 2 部分中创建的)
4)将步骤1第1部分中的代码修改为:
HostName = "Rabbit",
Run Code Online (Sandbox Code Playgroud)
5) 在 Visual Studio 中运行 Docker Compose。这是错误:
我相信我的问题与此类似:RabbitMq在 docker 中运行时拒绝连接。为什么我会提示这个错误?
更新
为了确保 RabbitMQ 在控制台应用程序之前启动;我将使用以下内容修改撰写文件:
depends_on:
- rabbitmq
Run Code Online (Sandbox Code Playgroud)
更新2
我尝试按照上面的说明使用 MVC 应用程序而不是控制台应用程序(在步骤 1 中)。我将连接代码放入 Startup 构造函数中(仅用于测试),我看到了以下内容:
为什么我会看到错误以及为什么它尝试连接到:92.242.132.15:5672?MVC 应用程序(和rabbit mw)之前的 Docker Compose 如下所示:
version: '3.4'
services:
dockerrabbitmqmvc:
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=https://+:443;http://+:80
- ASPNETCORE_HTTPS_PORT=44336
ports:
- "54258:80"
- "44336:443"
volumes:
- ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
- ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
rabbitmq:
image: rabbitmq:3-management-alpine
hostname: rabbit
ports:
- "15672:15672"
- "5672:5672"
expose:
- "15672"
- "5672"
Run Code Online (Sandbox Code Playgroud)
映射端口后,您必须在 docker compose 文件中将rabbitmq 的端口暴露给外部 - 如下所示
rabbit:
image: rabbitmq:3-management-alpine
hostname: rabbit
ports:
- "15672:15672"
- "5672:5672"
expose:
- 15672
- 5672
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3214 次 |
| 最近记录: |