10

尝试从 C# 实用程序打开我的 Postgresql 数据库时出现以下错误:

System.IO.IOException:无法从传输连接读取数据:现有连接被远程主机强行关闭。---> System.Net.Sockets.SocketException: 现有连接被远程主机强行关闭

我尝试从远程计算机和运行 Postgresql 服务器的计算机上运行该程序。

目前两台计算机上都没有防火墙,我可以使用相同的密码通过 postgres 管理实用程序很好地连接到数据库和服务器。我已检查用户名是否具有对数据库的权限。

这是我的连接代码:

public bool updateFromServer()
{
    try
    {
        NpgsqlConnection conn = new NpgsqlConnection(connString);
        conn.Open();
        conn.Close();
        return true;
    }
    catch (Exception e)
    {
        conn.close()
        return false;
    }
}

对此的任何帮助将不胜感激。

4

1 回答 1

14

我花了 1 个小时搜索相同的内容,但没有发现任何问题。但后来意识到 PG 将其日志放在 pg_log 文件夹中。我查看了它以查看可能的问题。

结果你只需要在“pg_hba.conf”文件中有正确的“host”条目。对我来说,这个文件位于 C:\Program Files\PostgreSQL\9.1\data 目录中。例如

托管所有 192.168.1.2/32 md5

其中 192.168.1.2 - 是您客户的 IP 地址。

顺便说一句,您仍然需要将 5432 端口作为入站规则打开(Win​​dows Vista、Windows 7、Windows 2008+)。

于 2012-06-25T16:52:44.117 回答