PostgreSQL ошибка подключения ТОЛЬКО при подключении к сети - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть приложение. NET на клиенте, которое подключается к базе данных PostgreSQL с использованием библиотеки Npg sql. Проблема, с которой сталкивается клиент, заключается в том, что при попытке установить sh соединение между клиентом и базой данных в журнале базы данных возникает ошибка, и приложение отображает ошибку времени ожидания:

08006: не удалось получить данные от клиента: существующее соединение было принудительно закрыто удаленным хостом.

Это происходит только в том случае, если компьютер подключен к сети. Если сеть недоступна, все работает нормально.

Компьютер работает на Windows 7 32 бит

PostgreSQl версия 10,5 32 бит

Npg sql версия 3.1.10

Соединение выполняется с использованием клиентских сертификатов через порт 5439

. Любые другие тесты, выполненные на компьютерах с такими же характеристиками (такая же версия Windows, тот же объем ОЗУ), не выдают никаких ошибок. и работает с подключением net или без него.

Есть предложения?

Большое спасибо.

Редактировать: База данных и клиент установлены на одном компьютере и Windows Брандмауэр включен и настроен для разрешения трафика 5439 c. В любом случае, если брандмауэр отключен, ошибка все еще существует.

ОБНОВЛЕНИЕ:

Я заметил несколько ошибок CAPI2 в средстве просмотра событий Windows, заявляющих

A Цепочка сертификатов обработана, но завершена в root сертификате, который не является доверенным поставщиком доверия.

Сертификаты, используемые для подключения к базе данных, являются самозаверяющими и создаются во время установки с периодом действия 10 лет. Они не проверяются ни одним внешним провайдером или чем-либо еще.

1 Ответ

0 голосов
/ 23 апреля 2020

Наконец-то нашел причину ошибки. Windows не доверял сертификатам из-за отсутствия поддержки SHA2. Установил поддержку SHA2 на Windows (KB4474419 и KB4490628) и все снова заработало как надо.

...