无法从 .NET 应用程序连接到 Heroku Postgres (Npgsql)

Unable to connect to Heroku Postgres from a .NET application (Npgsql)

我正在尝试使用 Npgsql 提供程序和 Entity Framework(最新版本)从 C# Windows Forms 应用程序连接到 Heroku Postgres 数据库(业余开发级别),并且我'我正在获取具有以下内部异常的 ProviderIncompatibleException:

"The provider did not return a ProviderManifestToken string." "FATAL: 42501: permission denied for database \"postgres\"" Detail: "User does not have CONNECT privilege."

数据库由 Rails 上的 Ruby 应用程序以及 Heroku 上的 运行 访问,我可以通过 Windows 上的 pgAdmin III 访问它。我认为这不是 Npgsql 的问题,因为连接与本地和远程 PostgreSQL 开发数据库完美配合。

我在 app.config 文件中使用的连接字符串如下所示:

Server=HerokuAmazonAWS;Port=5432;Database=MyHerokuDatabase;User Id=MyHerokuUsername;Password=MyHerokuPassword;SSL=true;SslMode=Require;

由于 Heroku 需要与数据库的 SSL 连接,我已将其设置在连接字符串中,因此这似乎不是问题。这个 "permission denied for database postgres" 错误困扰着我,因为我没有尝试连接到该服务器上的 postgres 数据库。您是否知道可能导致此问题的原因以及如何解决?谢谢

我们发布了一个错误修复版本,可能会解决该问题:https://github.com/npgsql/npgsql/releases/tag/v2.2.5

假设始终可以连接到数据库 "postgres",但 Amazon Redshift 和 Heroku 似乎都取消了对它的一般访问权限。现在,使用 "template1" 代替。