2016-05-16 31 views
-1

這是試圖連接到一個PostgreSQL數據庫採用雙向電力PowerBI CX錯誤連接到PostgreSQL

細節時,我收到了錯誤:「TlsClientStream.ClientAlertException:CertificateExpired 在TlsClientStream.TlsClientStream.SendAlertFatal(AlertDescription 介紹,串消息) 在TlsClientStream.TlsClientStream.ParseCertificateMessage(字節[] BUF,的Int32 & POA) 在TlsClientStream.TlsClientStream.TraverseHandchakeMessages() 在TlsClientStream.TlsClientStream.GetInitialHandshakeMessages (布爾allowApplicationData) 在TlsClientStream.TlsClientStream.PerformIntitialHandshake(字符串 主機名,X509CertificateCollection clientCertificates, RemoteCertificateValidationCallback remoteeCertificateValidationCallback,布爾 checkCertificateRevocation)」

我無法找到答案的任何位置上的計算器。

PostgreSQL位於遠程,我下載了PowerBI桌面的64位版本:2.33.4337.501。

回答

-1

我在回答我自己的問題,因爲我確實投入了相當長的時間,我希望其他人不需要爲這樣簡單的解決方案浪費相同的時間。

基本上問題出在我用的npgsql版本。 在這篇文章發佈之時,我使用的版本是Npgsql 3.0.7,默認情況下它將執行驗證,而2.x版本在默認情況下不會對服務器的證書執行驗證。卸載並安裝2.x版本後,連接可以工作。這個解決方案對於那些不得不使用3.x版本的人來說並不好。

+0

Npgsql 2.x現在已經很古老了,除非你有很好的理由,否則你不應該使用它。 –

0

而不是掉到了2.X Npgsql的,這是值得花幾分鐘on the documentation

注意,默認情況下,將Npgsql的驗證服務器的 證書是有效的。如果您使用的是自簽名證書,則此 將失敗。您可以通過在連接字符串中指定Trust Server Certificate = true來指示Npgsql忽略此項。要精確控制 服務器證書的驗證方式,您可以在NpgsqlConnection上註冊 UserCertificateValidationCallback(與.NET的SSLStream類似,此工作僅適用於 )。