gpt4 book ai didi

.net - 尽管主机说它正在监听端口,但无法使用 drda 连接到另一台机器上的 informix

转载 作者:太空狗 更新时间:2023-10-29 12:11:21 25 4
gpt4 key购买 nike

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

host 中的 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 address:port);UserID=(userid);Password=(password)

所以我想知道我是否错过了任何步骤。我知道该错误意味着由于主机拒绝连接而以某种方式未启用 drda。主机运行 Ubuntu,我的程序是用 .NET 编写的,从 Windows 运行。

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

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

谢谢。

最佳答案

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

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

要从 .Net 连接 Informix 数据库,您有两种选择:1. 连接到 DRDA 别名的 IBM 数据服务器客户端(这是您当前拥有的)2. Informix .Net Provider(包含在“Informix CSDK”中)

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

看看Informix Developers Handbook它通过一些关于如何使用它们的好示例解释了这两个提供程序。

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com