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

时间:2015-01-21 12:17:47

标签: .net postgresql heroku npgsql

我正在尝试使用Npgsql提供程序和实体框架(最新版本)从C#Windows窗体应用程序连接到Heroku Postgres数据库(Hobby-dev级别),并且我收到带有以下内部异常的ProviderIncompatibleException :

  

“提供程序未返回ProviderManifestToken字符串。” “致命:   42501:数据库\“postgres \”的权限被拒绝“详细信息:”用户这样做   没有CONNECT权限。“

数据库由也在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 数据库。您有什么想法导致这种情况以及如何解决这个问题吗?感谢。

1 个答案:

答案 0 :(得分:1)

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

假设始终可以连接到数据库“postgres”,但Amazon Redshift和Heroku似乎都已撤销对它的一般访问权限。现在,改为使用“template1”。