2016-05-16 2 views
-1

Это ошибка, я получил при попытке подключения к PostgreSQL БД с помощью степенных биPowerBI Cx Ошибка подключения к PostgreSQL

Подробности: «TlsClientStream.ClientAlertException: CertificateExpired в TlsClientStream.TlsClientStream.SendAlertFatal (AlertDescription описание, Строка сообщения) на TlsClientStream.TlsClientStream.ParseCertificateMessage (байт [] ЬиЕ, Int32 & АПО) на TlsClientStream.TlsClientStream.TraverseHandchakeMessages() на TlsClientStream.TlsClientStream.GetInitialHandshakeMessages (Boolean allowApplicationData) в TlsClientStream.TlsClientStream.PerformIntitialHandshake (String Hostname, X509CertificateCollection clientCertificates, RemoteCertificateValidationCallback remoteeCertificateValidationCallback, Boolean checkCertificateRevocation)»

я не мог найти ответ в любом месте на StackOverflow.

PostgreSQL удаленно, и я скачал: 2.33.4337.501 64-разрядный рабочий стол PowerBI.

ответ

-1

Я отвечаю на свой вопрос, потому что у меня было много времени, и я надеюсь, что другим людям не нужно тратить столько времени на такое простое решение.

В основном проблема была в версии npgsql, которую я использовал. На момент публикации я использовал версию Npgsql 3.0.7, которая по умолчанию должна выполнять проверку, а версии 2.x по умолчанию не выполняли проверку на сертификате сервера. Соединение работает после удаления и установки версии 2.x. Это решение не подходит для людей, которые должны использовать версию 3.x.

+0

Npgsql 2.x является древним, и вы не должны использовать его, если у вас нет по-настоящему веской причины. –

0

Вместо того, откинувшись к Npgsql 2.x, это стоит потратить несколько минут on the documentation:

Обратите внимание, что по умолчанию, Npgsql будет проверять, что сертификат вашего сервера является действительным. Если вы используете самозаверяющий сертификат, то не будет работать. Вы можете указать Npgsql игнорировать это, указав в строке подключения Trust Сертификат сервера = true. Чтобы точно контролировать , как проверяется сертификат сервера, вы можете зарегистрировать UserCertificateValidationCallback в NpgsqlConnection (это работает только , как и в SSL-потоке .NET).