虽然主机说它在端口

时间:2017-06-01 20:08:30

标签: .net linux informix

我在使用informix的常见.net驱动程序连接到另一台机器上的informix服务器时遇到问题。当我运行testconn40_32时,它失败并出现错误08001.奇怪的是主机说它正在监听指定的端口。

主机中的sqlhosts文件有一行指定drda连接,如下所示:

dr_informix1210 drsoctcp localhost dr_informix1210

我还在主机的onconfig文件中为该主机指定了DBSERVERALIASES名称:DBSERVERALIASES dr_informix1210, lo_informix1210

我还设置了所有环境变量,包括PATH,INFORMIXDIR,INFORMIXSERVER,ONCONFIG和INFORMIXSQLHOSTS。

我的服务文件有一行代表该服务:

dr_informix1210    9089/tcp

我添加了一条规则,允许该端口上的连接到防火墙

/ etc / hosts中的我的主机文件也列出了这样的服务器:

127.0.0.1     localhost

我的连接字符串如下:Database=sigac_historico;Server=(ip adress:port);UserID=(userid);Password=(password)

所以我想知道我是否错过任何一步。我知道错误意味着某种方式drda未启用,因为主机拒绝连接。 主机运行Ubuntu,我的程序是用.NET运行的,从windows运行。

我还要提一下,如果我对该服务器执行telnet,则会抛出错误,指出无法打开连接。

还有一个问题:我看到IBM有一个名为DB2的不同产品,¿这是唯一支持ADO.NET的产品吗?目前我正在尝试连接到Informix Server

感谢。

1 个答案:

答案 0 :(得分:2)

要添加到Pradeep所说的内容,您还可以将“* hostname”放在SQLHOSTS文件(服务器端)的第3列中,这样它就会为侦听器提供所有网络接口(如果是,localhost等)。

关于客户端,是的IBM有一个很大的思考调用DB2(我会尽量避免使用它;)

要从.Net连接Informix数据库,您有两种选择: 1.连接到DRDA别名的IBM Data Server Client(您当前拥有的) 2. Informix .Net Provider(包含在'Informix CSDK'中)

后者是“本机/经典”.Net Provider,使用标准SQLI协议(类似于所有Informix客户端)并支持比DRDA更多的Informix功能,但目前缺少一些“新的”.Net功能(像EF /实体模型这样的东西。)

看看Informix Developers Handbook它解释了两个提供商,并提供了一些如何使用它们的好样本。