Npgsql抛出错误:错误的连接字符串。无法连接到postgreSQL [F#]

时间:2017-02-24 20:49:40

标签: postgresql f# npgsql

我使用SQLProvider连接到F#中的(本地)PostgreSQL数据库。 我从fsprojects开始使用此代码:

open FSharp.Data.Sql
open Npgsql

let [<Literal>] ResolutionPath = 
    __SOURCE_DIRECTORY__ + @"/../../packages/Npgsql/lib/net451/"

[<Literal>]
let connectionString = "Host=localhost;Port=5432;User ID=test;Password=test;Database=testdb;"

 type PostgreSQL = 
    SqlDataProvider< 
        Common.DatabaseProviderTypes.POSTGRESQL,
        ConnectionString  = connectionString,
        ResolutionPath    = ResolutionPath,
        IndividualsAmount = 1000,
        UseOptionTypes    = true>

当我尝试编译它时,我收到此错误消息:

  

(path)/Database.fs(60,9):error FS3033:type provider&#39; FSharp.Data.Sql.SqlTypeProvider&#39;报告错误:无法创建连接,很可能这意味着connectionString是错误的。请参阅Npgsql中的错误以进行故障排除:Npgsql.Counters&#39;的类型初始化程序。抛出一个例外。   (路径)/Database.fs(60,9):错误FS3033:类型提供程序&#39; FSharp.Data.Sql.SqlTypeProvider&#39;报告错误:无法创建连接,很可能这意味着connectionString是错误的。请参阅Npgsql中的错误以进行故障排除:Npgsql.Counters&#39;的类型初始化程序。抛出异常。

我检查过用户ID和密码,连接字符串中的所有内容都是正确的。 我实际上不知道如何调试此问题。 你知道什么可能是错的吗? 它没有任何问题吗?

我正在使用macOS 10.12。

最后,如果我无法修复此问题,您是否还建议使用其他方法连接到postgreSQL(使用类型提供程序)?

1 个答案:

答案 0 :(得分:4)

错误消息清楚地表明Npgsql.Counters的类型初始值设定项引发了异常 - 这是Npgsql 3.2对Windows性能计数器的新支持。

不幸的是,在各种情况下,性能计数器似乎存在一些问题(请参阅#1447#1435)。因此,版本3.2.2(将在本周发布)默认情况下不会使用它们。

您能否确认您使用的是3.2.1(而不是3.2.0),因为引入了部分修复?如果您正在使用3.2.1并获得此异常,那么您将需要等待几天才能获得3.2.0,并且可以在此期间使用3.1.10,而不会抛出异常。

相关问题