PowerBI Cx连接到PostgreSQL时出错

PowerBI Cx连接到PostgreSQL时出错,postgresql,connection,database-connection,npgsql,powerbi,Postgresql,Connection,Database Connection,Npgsql,Powerbi,这是我在尝试使用power bi连接到PostgreSQL数据库时收到的错误 详细信息:“TlsClientStream.ClientAlertException:CertificateExpired 位于TlsClientStream.TlsClientStream.SendAlertFatal(AlertDescription 说明,字符串消息) 位于TlsClientStream.TlsClientStream.ParseCertificateMessage(字节[]) buf、Int32

这是我在尝试使用power bi连接到PostgreSQL数据库时收到的错误

详细信息:“TlsClientStream.ClientAlertException:CertificateExpired 位于TlsClientStream.TlsClientStream.SendAlertFatal(AlertDescription 说明,字符串消息) 位于TlsClientStream.TlsClientStream.ParseCertificateMessage(字节[]) buf、Int32和poa) 在TlsClientStream.TlsClientStream.TraverseHandchakeMessages()处 在TlsClientStream.TlsClientStream.GetInitialHandshakeMessages处 (布尔allowApplicationData) 在TlsClientStream.TlsClientStream.PerformingInitialHandShake(字符串 主机名,X509CertificateCollection客户端证书, RemoteCertificateValidationCallback remoteeCertificateValidationCallback,布尔值 支票证书(职业)

我在stackoverflow的任何地方都找不到答案


PostgreSQL位于远程位置,我下载了版本:2.33.4337.501 64位PowerBI desktop。

我在回答我自己的问题,因为我确实投入了大量的时间,我希望其他人不需要为这种简单的解决方案浪费同样的时间

基本上,问题在于我使用的npgsql版本。
在撰写本文时,我使用的版本是Npgsql 3.0.7,默认情况下,它将执行验证,而2.x版本默认情况下不会对服务器的证书执行验证。卸载并安装2.x版本后,连接将正常工作。这个解决方案对于那些不得不使用3.x版本的人来说是不好的

与其回到Npgsql 2.x,不如花几分钟时间:

请注意,默认情况下,Npgsql将验证服务器的 证书是有效的。如果您使用的是自签名证书,则此 将失败。您可以通过指定信任来指示Npgsql忽略这一点 服务器证书=连接字符串中的true。精确控制 如何验证服务器的证书,您可以注册 NpgsqlConnection上的UserCertificateValidationCallback(此功能仅适用于 就像.NET的SSLStream)


NPGSQL2.x现在已经很古老了,除非有很好的理由,否则不应该使用它。