我在使用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中的hosts文件还列出了服务器,如下所示:
127.0.0.1     localhost

我的连接字符串如下:Database=sigac_historico;Server=(ip adress:port);UserID=(userid);Password=(password)
所以我想知道我是否错过任何一步。我知道该错误意味着由于主机拒绝连接而无法启用drda。
主机运行Ubuntu,而我的程序是从Windows运行在.NET中。

我还要提及的是,如果我对该服务器执行telnet操作,则会引发错误,指出无法打开连接。

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

谢谢。

最佳答案

要添加Pradeep所说的内容,您还可以在SQLHOSTS文件的第3列(服务器端)中添加“* hostname”,这样它将生成所有网络接口(interface)(真实的if,localhost等)。

对于客户而言,是的,IBM有一个很大的想法电话DB2(我将尽我所能避免);

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

后者是“ native /经典” .Net Provider,使用标准的SQLI协议(protocol)(类似于所有Informix客户端),并且比DRDA支持更多的Informix功能,但目前缺少一些"new" .Net功能(诸如EF之类的东西)。/实体模型)。

看看Informix Developers Handbook,它向两个提供者解释了如何使用它们的一些很好的示例。

关于.net - 尽管主机表示它正在监听端口,但无法使用drda连接到另一台计算机上的notifyix,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44316260/

10-16 11:27