首页 > 解决方案 > 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)

标签: postgresql.net-coredocker-compose

解决方案


你能试试这个连接字符串吗

"User ID=myuser;Password=123;Host=host.docker.internal;Port=5432;Database=testDb;Pooling=true;"

我的意思是,使用host.docker.internal而不是localhost


推荐阅读