Eho*_*ret 4 c# rabbitmq docker .net-core
我按照文章启动了一个 RabbitMQ 容器:https : //docs.docker.com/samples/library/rabbitmq使用包括管理工具的图像
docker run -d --hostname my-rabbit --name some-rabbit -p 8080:15672 rabbitmq:3-management
Run Code Online (Sandbox Code Playgroud)
docker run -d --hostname my-rabbit --name some-rabbit -p 8080:15672 rabbitmq:3-management
Run Code Online (Sandbox Code Playgroud)
我可以通过http://localhost:8080访问管理工具
然后,我按照那篇文章创建了最基本的 C# 项目,以与我的本地 RabbitMQ 实例进行通信:
docker container ls --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
8a42bb749074 rabbitmq:3-management "docker-entrypoint.s…" 8 hours ago Up 8 hours 4369/tcp, 5671-5672/tcp, 15671/tcp, 25672/tcp, 0.0.0.0:8080->15672/tcp some-rabbit
Run Code Online (Sandbox Code Playgroud)
但不幸的是出现了以下错误:
using System.Globalization;
using RabbitMQ.Client;
namespace RabbitCSharp
{
public static class Program
{
public static void Main(params string[] args)
{
var factory = new ConnectionFactory
{
HostName = "localhost"
};
using (var connection = factory.CreateConnection())
{
using (var channel = connection.CreateModel())
{
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
不太确定为什么 RabbitClient 无法通过 127.0.0.1:5672
任何的想法?
看来我的容器端口 5672 没有映射到本地端口 5672。
我刚刚创建了另一个包含端口映射的容器,如本答案所示:
docker stop some-rabbit
docker commit some-rabbit some-rabbit-right
docker run -p 5672:5672 -p 8080:15672 -td some-rabbit-right
Run Code Online (Sandbox Code Playgroud)
或者直接运行一个新实例:
docker run -d --hostname my-rabbit --name some-rabbit -p 5672:5672 -p 8080:15672 rabbitmq:3-management
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2157 次 |
最近记录: |