postgresql - docker compose postgresql connection ExtendedSocketException:无法分配请求的地址
问题描述
这是我的 postgresql 迁移代码。在 Visual Studio 中运行项目时没有问题。
services.AddDbContext<myDbContext>(options => options.UseNpgsql("User ID=myuser;Password=123;Host=localhost;Port=5432;Database=testDb;Pooling=true;"));
using var scope = services.BuildServiceProvider().CreateScope();
var dbContext = scope.ServiceProvider.GetRequiredService<myDbContext>();
dbContext.Database.Migrate();
但是当我在 docker compose 模式下运行时,我在行得到这个错误dbContext.Database.Migrate()
ExtendedSocketException:无法分配请求的地址 [::1]:5432 此异常最初是在此调用堆栈中引发的:System.Net.Sockets.Socket.DoConnect(System.Net.EndPoint, System.Net.Internals.SocketAddress) System.Net .Sockets.Socket.Connect(System.Net.EndPoint) Npgsql.NpgsqlConnector.Connect(Npgsql.Util.NpgsqlTimeout)
解决方案
你能试试这个连接字符串吗
"User ID=myuser;Password=123;Host=host.docker.internal;Port=5432;Database=testDb;Pooling=true;"
我的意思是,使用host.docker.internal
而不是localhost
推荐阅读
- android - 如何使用颤振将音频播放器添加到其中的应用程序大小小于 10 MB 的新闻最小化?
- sql - 编写一个 postgreSQL 查询来更新一个 json 列
- java - 在 androidx.appcompat.widget.SearchView 上设置建议
- java - java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“double java.lang.Double.doubleValue()”
- laravel - 带变量的 PHP 字符串
- java - Eclipse Helios 支持哪个版本的 Java?
- c# - 如何在 WPF C# 中解析 json 数据?
- mysql - MySQL:优化分区以加快请求
- c++ - 如何使用 SFINAE 检测 noexcept 方法
- html - 页面跳转到部分中间?