我在使用Npgsql库连接到PostgreSQL数据库的客户端上有一个.NET应用程序。客户端遇到的问题是,当尝试建立从客户端到数据库的连接时,数据库日志中会引发错误,并且应用程序会显示超时错误:
08006:无法从客户端接收数据:远程主机强行关闭了现有连接。
仅当计算机连接到网络时,才会发生这种情况。如果没有可用的网络,则一切正常。
计算机在Windows 7 32位系统上运行
PostgreSQl版本是10.5 32位
Npgsql版本3.1.10
使用端口5439上的客户端证书进行连接
在具有相同特征(相同的Windows版本,相同的RAM数量)的计算机上进行的任何其他测试均不会引发任何错误,并且无论是否具有网络连接都可以使用。
有什么建议吗?
非常感谢。
编辑:数据库和客户端都安装在同一台计算机上,并且Windows防火墙已启用并配置为允许5439通信。无论如何,如果禁用了防火墙,错误仍然存在。
更新:
[我在Windows事件查看器中注意到一些CAPI2错误,说明
已处理的证书链,但终止于受信任提供者不信任的根证书。
用于连接到数据库的证书是自签名的,并根据有效期为10年的安装时间创建。他们没有针对任何外部提供商或其他任何机构进行验证。
最后找到错误的原因。由于缺少SHA2支持,Windows不信任证书。在Windows上安装了SHA2支持(KB4474419和KB4490628),并且一切都按原样工作。