【问题标题】:Unable to connect to Heroku Postgres from a .NET application (Npgsql)无法从 .NET 应用程序 (Npgsql) 连接到 Heroku Postgres
【发布时间】:2015-03-19 23:06:33
【问题描述】:

我正在尝试使用 Npgsql 提供程序和实体框架(最新版本)从 C# Windows 窗体应用程序连接到 Heroku Postgres 数据库(爱好开发级别),并且我得到一个带有以下内部异常的 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 数据库。您是否有任何想法可能导致此问题以及如何解决?谢谢。

【问题讨论】:

    标签: .net postgresql heroku npgsql


    【解决方案1】:

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

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

    【讨论】:

    • 嗯,显然 template1 也不能使用。我刚刚看到了另一个机会,所以我们会在下一个版本中解决这个问题。
    • 我也遇到了这个问题:数据库“template1”的权限被拒绝。在 heroku 上运行。
    猜你喜欢
    • 2023-03-14
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    • 2017-10-31
    • 1970-01-01
    • 2018-01-31
    相关资源
    最近更新 更多