当前位置: 首页 > 知识库问答 >
问题:

如何创建从.NET服务到远程PostgreSQL服务器的连接

鲁华茂
2023-03-14

我无法使用某些连接字符串从C#.NET代码连接到远程PostgreSQL服务器。(我的连接字符串包含基本信息,如主机地址,端口,用户名,密码,数据库名)。

我的连接字符串:server=host_address;port=host_port;用户id=postgres_username;password=postgres_password;database=postgres_database_name;

注意:我使用的是npgsql.NET程序集

我得到的错误是:

No connection could be made because the target machine actively refused it
 Npgsql.NpgsqlConnector.Connect(NpgsqlTimeout timeout)
   at Npgsql.NpgsqlConnector.<RawOpen>d__153.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Npgsql.NpgsqlConnector.<Open>d__149.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Npgsql.ConnectorPool.<AllocateLong>d__19.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Npgsql.NpgsqlConnection.<>c__DisplayClass32_0.<<Open>g__OpenLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Npgsql.NpgsqlConnection.Open()

共有1个答案

孟英光
2023-03-14

在我看来,您试图连接的机器可能有端口阻塞,请检查是否是这样。如果不是,则可以按照Npsql文档(https://www.npgsql.org/doc/index.html)中的语法检查字符串连接,如下所示:

var connString = "Host=myserver;Username=mylogin;Password=mypass;Database=mydatabase";

在这里可以找到连接字符串参数。

 类似资料:
  • 问题内容: 我想对redis.conf进行一些更改,以便每当我键入redis-cli时,它就会将我连接到安装在远程服务器上的redis。 我知道我们可以通过以下方式连接到安装在远程服务器上的redis: 但是实际上,我有一些bash脚本,在那些脚本中,我在很多地方都使用过redis-cli。因此,我不想以每个文件中的redis-cli -h’IP- Address-Of-Server’替换redi

  • 问题内容: 我已经使用Ubuntu 10.10服务器上http://redis.io/topics/quickstart上的快速入门指南中的说明成功安装了Redis 。我将服务作为dameon运行(因此可以通过init.d运行) 该服务器是具有内部和外部IP的Rackspace Cluster的一部分。主机在端口6379上运行(Redis的标准配置) 我在iptables中添加了一行,以允许来自端

  • 我在远程服务器上安装了一个干净的Wildfly8.1。注意,这个远程服务器是用Vagrant创建的虚拟盒子服务器。 现在我想使用远程JBoss服务器连接IntelliJ。 首先,我创建了一个虚拟用户,用户名/密码:jboss/jboss 然后我使用以下命令启动wildfly服务器: 以下是我在IntelliJ中的远程JBoss服务器设置: 但我得到以下错误:

  • Netty服务器,Fedora。我只是无法从远程主机连接到服务器,并且通过util没有显示监听套接字。但是我可以在同一台机器上建立运行客户端和服务器的连接。就像这样: 我已尝试仅使用端口、localhost IP、0.0.0.0 IP和网络IP初始化

  • 问题内容: 我想从我的本地计算机连接到EC2上的db,但是我却做不到,并且尝试了所有操作-我正在使用以下命令连接到EC2: 产生此错误 错误2003(HY000):无法连接到“ IP”上的MySQL服务器(110) 我已经用修改了my.cnf 仍然无法连接到数据库 问题答案: 可能是以下原因之一: 您需要在Amazon Security Group中进行输入,以允许从您的计算机到Amazon EC