【问题标题】:PostgreSQL connection error ONLY when attached to network仅在连接到网络时出现 PostgreSQL 连接错误
【发布时间】:2020-07-30 19:36:32
【问题描述】:

我在客户端上有一个 .NET 应用程序,它使用 Npgsql 库连接到 PostgreSQL 数据库。客户端遇到的问题是,当尝试建立从客户端到数据库的连接时,数据库日志中会抛出错误,并且应用程序会显示超时错误:

08006:无法从客户端接收数据:现有连接被远程主机强行关闭。

仅当计算机连接到网络时才会发生这种情况。如果没有可用的网络,一切正常。

计算机在 Windows 7 32 位系统上运行

PostgreSQl 版本是 10.5 32 位

Npgsql 版本 3.1.10

使用端口 5439 上的客户端证书建立连接

在具有相同特性(相同 Windows 版本、相同 RAM 容量)的计算机上进行的任何其他测试都不会引发任何错误,并且无论是否连接网络都可以正常工作。

有什么建议吗?

非常感谢。

编辑:数据库和客户端都安装在同一台计算机上,Windows 防火墙已启用并配置为允许 5439 流量。无论如何,如果防火墙被禁用,错误仍然存​​在。

更新:

我注意到 Windows 事件查看器上有几个 CAPI2 错误说明

已处理的证书链,但终止于不受信任提供者信任的根证书。

用于连接数据库的证书是自签名的,并在安装时创建,有效期为 10 年。它们没有针对任何外部提供商或任何东西进行验证。

【问题讨论】:

  • 您应该查看您的防火墙设置。如果客户端和数据库位于同一台计算机/同一网络上,或者数据库托管在另一个网络中,您应该在问题中提及。提供更多详细信息,以便我们为您提供更多帮助。

标签: .net postgresql npgsql


【解决方案1】:

终于找到了错误的原因。由于缺乏 SHA2 支持,Windows 不信任证书。在 Windows 上安装了 SHA2 支持(KB4474419 和 KB4490628),一切正常。

【讨论】:

    猜你喜欢
    • 2020-08-22
    • 1970-01-01
    • 2020-03-09
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 2020-04-04
    • 2019-06-21
    • 2019-01-08
    相关资源
    最近更新 更多