[英]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.