在Linux上从.NET Core连接到Informix

问题描述 投票:0回答:1

[我们正在尝试找到一种将.NET Core Microservice连接到Informix DB的好策略。 .NET Core Microservice在RHEL Linux上运行。

我们当前的实现使用OdbcConnection .NET Core类尝试进行连接。不管我尝试了什么,我都会得到相同的结果。无法连接。

这是我们正在使用的示例连接字符串:

Dsn =; Driver = / opt / HCL / informix / 4.10 / lib / cli / iclis09b.so; Host = redactedip; Server = redactedserver; Protocol = olsoctcp; Database = redacted; LogonID = redacted; Uid = redacted; Pwd =已编辑; Client_Locale = zh_CN.CP1252; Db_Locale = zh_CN.819;

我尝试在其中制作了DSN的odbc.ini文件。这可以从isql的命令行运行,但是在我们的.NET Core应用程序中不起作用。 (我们在上方也使用了这些相同的设置来在odbc.ini中设置DSN)

我还尝试了许多不同方式的连接字符串。哪个都行不通。

您可以在没有odbc.ini的情况下连接到Linux上的Informix吗? (仅使用连接字符串?)

是否还有.NET Core的其他软件包/解决方案比原始的ODBC连接更好或更健壮?我见过像IBM.Data.DB2.Core这样的软件包,应该可以访问Informix。有人成功使用过吗?

甚至.NET Core应用程序的任何类型的有效Linux配置的源示例都将有所帮助...

有什么想法吗?

.net linux .net-core informix
1个回答
0
投票

[好,很高兴地说我找到了解决方案。正如jsagrera提到的,UNICODE = UCS-2设置似乎非常重要。以下是一些错误配置的东西,一旦我解决了,它们确实可以提供帮助:

1)权限-确保您对notifyix驱动程序目录具有适当的权限。

2)权限-确保您对odbcinst.ini具有适当的权限

3)确保您在连接字符串OR odbc.ini中引用的任何驱动程序都作为odbcinst.ini中的匹配项存在

4)您可以使用连接字符串,但仍必须为该一个UNICODE设置引用odbc.ini文件。我尝试了一些其他方法来解决此问题,方法是将其包含为ENV变量或包含在连接字符串本身中。它似乎不起作用。

5)以下是我在连接字符串中使用的一些属性:Dsn =; Driver = Informix; Host = redactedIP; Server = redactedsqlhost; Protocol = olsoctcp; Database = redacted; Uid = redacted; Pwd = redacted; Client_Locale = en_US .CP1252; Db_Locale = zh_CN.819;6)我还必须为我的过程定义以下环境变量:INFORMIXDIR,INFORMIXSQLHOSTS,ODBCINI,LD_LIBRARY_PATH

祝你好运!我仍在研究unicode的解决方案,因此不必在odbc.ini文件中包括该条目。

© www.soinside.com 2019 - 2024. All rights reserved.