C# 无法连接到docker compose中主机名为6379的redis实例
我正在使用docker compose启动一个dotnet核心应用程序和redis。Redis主机名设置为docker网络中使用的容器名称。服务堆栈中的redis连接管理器是使用连接字符串设置的。但是,它似乎总是默认返回到localhost:6379 这已经在两周前起作用了,与docker-compose.yaml相同,与redis客户端管理器的代码相同 Docker版本18.09.1,内部版本4c52b90- docker compose版本1.23.2,内部版本1110ad01 根据servicestack.redis手册,我尝试了各种连接字符串选项 代码:C# 无法连接到docker compose中主机名为6379的redis实例,c#,redis,docker-compose,
servicestack,connection-string,C#,Redis,Docker Compose,
servicestack,Connection String,我正在使用docker compose启动一个dotnet核心应用程序和redis。Redis主机名设置为docker网络中使用的容器名称。服务堆栈中的redis连接管理器是使用连接字符串设置的。但是,它似乎总是默认返回到localhost:6379 这已经在两周前起作用了,与docker-compose.yaml相同,与redis客户端管理器的代码相同 Docker版本18.09.1,内部版本4c52b90- docker compose版本1.23.2,内部版本1110ad01 根据serv
知道为什么会这样吗?dev redis的IP地址是多少?i、 e.
Dns.GetHostAddresses(“dev redis”)[0]代码>IP地址在docker-compose.yaml(10.5.0.4)中定义,我也曾在RedisClientManager中尝试将其作为主机(池和基本)。没有成功。只是想知道为什么要使用默认主机(localhsot:6379)?它应该只使用指定的地址,错误消息是这样的,所以我会通过查看完整的异常堆栈跟踪来询问在哪里以及实际发生了什么。如果它不能通过IP连接,那么看起来你有一个网络错误,因为它不能通过TCP连接到你的redis服务器,我会先解决这个问题。
container.Register<IRedisClientsManager>(c => new BasicRedisClientManager(Environment.GetEnvironmentVariable("CACHE_CONNECTION_STRING")));
container.Register<ICacheClient>(c => c.Resolve<IRedisClientsManager>().GetCacheClient());
Console.WriteLine($"Cache details: Cache={Environment.GetEnvironmentVariable("CACHE")}, CONNECTION_STRING={Environment.GetEnvironmentVariable("CACHE_CONNECTION_STRING")}");
Connection string used:
dev-backend | Cache details: Cache=Redis, CONNECTION_STRING=dev-redis:6379
Error:
dev-backend | fail: ServiceStack.Redis.RedisNativeClient[0]
dev-backend | Could not connect to redis Instance at localhost:6379