docker 删除数据库创建连接失败:无法设置可信连接

eimct9ow  于 2022-12-26  发布在  Docker
关注(0)|答案(1)|浏览(108)

我有一个新的本地ASP.NET Core 6应用程序,它使用Docker并连接到本地Docker postgres容器(单独运行容器,而不是使用Docker Compose)。我添加了Npgsql包,并成功连接到它并创建表(使用PgAdmin检查)。问题是每当我尝试从包管理器控制台运行“Drop-Database”时,我得到以下错误:

Performing the operation "Drop-Database" on target "database 'Failed creating connection: Couldn't set trusted_connection (Parameter 'trusted_connection')' on server 'Failed creating connection: Couldn't set trusted_connection (Parameter 'trusted_connection')'".

对我来说,这没有意义,因为我没有在连接字符串中使用任何可信连接参数:

"ConnectionStrings": {
    "DefaultConnection": "Host=host.docker.internal;Database=local;Username=postgres;Password=password;Include Error Detail=true"
  }

我有另外两个解决方案,使用Docker并成功地运行PMC命令到本地Docker postgres容器,所以我不确定这次有什么不同。我没有找到任何类似的资源来解决这个问题,指定'Trusted_Connection=true' or 'Integrated Security=True'不起作用。
我的Program.cs文件与初学者项目相比没有变化,除了下面的Npgsql文件:

var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext<ApplicationDbContext>(options => options
    .UseNpgsql(connectionString)
    .EnableDetailedErrors());

请让我知道是否有任何可能导致此问题。

kgsdhlau

kgsdhlau1#

所以这个问题以前是在另一个项目上出现的,我在Package Manager Console中使用以下命令手动设置环境:

$env:ASPNETCORE_ENVIRONMENT='Local'

因此,当尝试删除数据库时,它正在搜索一个在我的新项目中不存在的本地appsettings连接字符串。将环境设置回Development为我解决了这个问题。

相关问题