INFORMIXSERVER与DBSERVERNAME或DBSERVERALIASES不匹配

时间:2019-03-05 12:23:50

标签: c# .net sdk informix

我已经安装了Informix Client SDK。然后,我创建了一个引用IBM.Data.Informix.dll的简单.net控制台应用程序。当我致电IfxConnection.Open()时会引发异常。

  

错误[HY000] [Informix .NET提供程序] [Informix] INFORMIXSERVER执行   与DBSERVERNAME或DBSERVERALIASES不匹配。   sqlerrm(数据库)

我已经看到了这个post,但似乎在客户端计算机上找不到sqlhosts文件。另外,我也不能提及环境变量。

所以我的问题是:

  1. 如何创建sqlhosts文件并将其保存在哪里?这将在数​​据库服务器或客户端计算机中还是在两者中?
  2. 需要哪些环境变量?

1 个答案:

答案 0 :(得分:1)

在Windows计算机中,所需的配置由 Setnet32实用程序(与Informix Client SDK一起安装)定义。您需要在该实用程序中设置Informix实例值,以使连接提供程序正常工作(Informix .NET Provider)。


首先在第三个标签中定义“主机信息”,然后单击“应用”(顺便说一句,我在西班牙Windows计算机中!):

enter image description here

注意:“当前主机”值应添加到您的主机Windows文件(%WINDIR%\System32\drivers\etc\hosts)。


然后,在第二个标签中定义“服务器信息”:

  • IBM Informix Server是您的Informix实例名称(INFORMIXSERVER)。
  • 主机名中填充了上一步(第三个标签)中定义的主机。
  • 协议名称是用于与服务器通信的协议(如果您使用的是不安全的TCP连接,则可以是'olsoctcp'或'onsoctcp'。请参阅the official documentation以检查要使用的值)。
  • 服务名称是用于服务器通信服务的名称,应将其添加到服务Windows文件(%WINDIR%\System32\drivers\etc\services

Setnet32: Server Information

这些更改之后,您应该可以运行.NET应用程序。显然,您的连接字符串值应与该实用程序中定义的信息匹配。