【发布时间】: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