繁体   English   中英

如何从 ASP.NET 核心 web Z8A5DA52ED125772A8AAZE 调用存储在 DigitalOcean 中的 postgresql db?

[英]How can I call a postgresql db stored in DigitalOcean from ASP.NET Core web api?

我想直接在 appsettings.json 文件上使用 DigitalOcean 提供的连接字符串,但显示错误

ArgumentException:不支持关键字:postgresql://XXXXX_user:xxxxxxxxxxxxx@db-trackbus-nyc3-xxxx-do-user-xxxxx-0.b.db.ondigitalocean.com:'xxkeyword/trackpg?sslmode(参数N ) .NpgsqlConnectionStringBuilder.GetProperty(字符串关键字)

这是 DigitalOcean 提供的确切连接字符串:

postgresql://xxxx_user:xxxxx@db-trackbus-nyc3-xxxx-do-user-xxxxx-0.b.db.ondigitalocean.com:xxxxx/TrackBus?sslmode=require

我正在使用 Npgsql nuget package,当数据库在本地时使用常规连接字符串工作正常

“服务器=xxx.0.0.x;端口=xxxx;数据库=TrackBus;用户ID=postgres;密码=xxxx;”

我也试过这个(私人和公共):

“服务器=private-db-trackbus-nyc3-xxxxx-do-user-xxxxx-0.b.db.ondigitalocean.com;端口=xxxxx;数据库=TrackBus;用户ID=xxxxx_user;密码=xxxxxxxxxx;集成安全=true ;"

错误:

处理请求时发生未处理的异常。 PostgresException:28000:主机“xxx.xxx.xxx.xxx”、用户“xxxx”、数据库“TrackBus”、SSL 没有 pg_hba.conf 条目

我搜索了最后一个 28000 异常,但无法应用找到的任何解决方案。

DigitalOcean 提供的连接字符串用于 CLI:

postgresql://xxxx_user:xxxxx@db-trackbus-nyc3-xxxx-do-user-xxxxx-0.b.db.ondigitalocean.com:xxxxx/TrackBus?sslmode=require

您必须将其转换为 appsettings.json 使用的格式,它将是这样的:

“服务器=db-trackbus-nyc3-xxxx-do-user-xxxxx-0.b.db.ondigitalocean.com;端口=xxxxx;数据库=TrackBus;用户ID=xxxxxxxx;密码=xxxxxxxxx;sslmode=要求;信任服务器证书=真;"

sslmode=Require;Trust Server Certificate=true; 非常重要,因为 DigitalOcean 中的托管数据库拥有它。

另请记住,所有 postgresql 数据库默认情况下都阻止远程连接,您必须从 Postgresql 安装文件夹中添加对 pg_hba.conf 文件的权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM