c#app中的npgsql故障 - 远程主机强行关闭现有连接

Omn*_*nce 8 c# postgresql npgsql

尝试从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;
    }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助都将不胜感激.

小智 13

我花了1个小时搜索同样的,发现没有问题.但随后意识到PG将其日志放在pg_log文件夹中.我查看它可能会发生问题.

事实证明,您只需在"pg_hba.conf"文件中输入正确的"主机"条目即可.对我来说,这个文件位于C:\ Program Files\PostgreSQL\9.1\data目录中.例如

主持所有192.168.1.2/32 md5

192.168.1.2 - 是您客户的IP地址.

顺便说一句,你仍然需要将5432端口打开为Inboud规则(Windows Vista,Windows 7,Windows 2008+).

  • 非常感谢,这真的是一个救生员. (2认同)