c# - 无法连接到 docker-compose 中主机名:6379 的 redis 实例
问题描述
我正在使用 docker-compose 启动一个 dotnet 核心应用程序和 redis。Redis 主机名设置为 docker 网络中使用的容器名称。服务堆栈中的 redis 连接管理器是使用连接字符串设置的。但是,它似乎总是默认回到 localhost:6379
这已经在 2 周前工作了,同样的 docker-compose.yaml,同样的代码用于 redis 客户端管理器。
Docker 版本 18.09.1,构建 4c52b90 - docker-compose 版本 1.23.2,构建 1110ad01
我已经按照 servicestack.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
知道为什么会这样吗?
解决方案
推荐阅读
- java - 如何修复错误:已弃用不必要地替换不存在的任务
- javascript - 如何禁用下拉菜单中已选择的选项?
- python-3.x - 在 Tensorflow 中将单变量回归转换为多变量回归
- c# - 异步死锁问题
- authentication - Flutter/Dart 根据用户登录令牌从 API 获取图像/数据
- pandas - 按月合并数据框,或与列和分组不同
- javascript - 如何创建函数来创建键数组?
- linux - 字体大小渲染因使用 Gimp 登录而异?
- mysql - 错误 1292 (22007) 的含义:截断不正确的 DOUBLE 值:'JAIN'
- asp.net-web-api-routing - 如果在不同的类中,相同路由的 GET 和 PUT 方法不起作用