我正在尝试使用 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."
该数据库由也在 Heroku 上运行的 Ruby on Rails 应用程序访问,我可以通过 Windows 上的 pgAdmin III 访问它。我认为这不是 Npgsql 的问题,因为连接可以与本地和远程 PostgreSQL 开发数据库完美配合。
我在 app.config 文件中使用的连接字符串如下所示:
Server=HerokuAmazonAWS;Port=5432;Database=MyHerokuDatabase;User Id=MyHerokuUsername;Password=MyHerokuPassword;SSL=true;SslMode=Require;
由于 Heroku 需要与数据库的 SSL 连接,我已将其设置在连接字符串中,因此这似乎不是问题。这个“数据库 postgres 的权限被拒绝”错误困扰着我,因为我没有尝试连接到该服务器上的 postgres 数据库。您是否知道可能导致此问题的原因以及如何解决?谢谢。
最佳答案
我们已经发布了一个可能会解决该问题的错误修复版本:https://github.com/npgsql/npgsql/releases/tag/v2.2.5
假设始终可以连接到数据库“postgres”,但 Amazon Redshift 和 Heroku 似乎都取消了对它的一般访问权限。现在,改为使用“template1”。
关于.net - 无法从 .NET 应用程序连接到 Heroku Postgres (Npgsql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28067056/