无法从ASP.NET应用程序连接到Informix

时间:2010-07-13 14:16:13

标签: asp.net vb.net database-connection informix

我已经在我的开发笔记本电脑上安装了IBM Informix Dynamic Server 11.50的试用版,用于我正在编写的ASP.NET 2.0应用程序。我创建了几个数据库并用示例数据填充它们但我无法连接。这是代码的相关部分:

Dim facStr As String = System.Configuration.ConfigurationManager.ConnectionStrings("fact").ConnectionString  
conn.ConnectionString = facStr
Try
    conn.Open()
Catch ex As Exception

例外是:

[Informix .NET提供程序] [Informix]服务器ol_srv_custom未在sqlhosts中列为dbserver名称。

sqlhosts文件的完整路径是:

C:\ Archivos de programa \ IBM \ Informix \ Client-SDK \ etc \ sqlhosts

Informix的环境变量:

INFORMIXSQLHOSTS = C:\ Archivos de programa \ IBM \ Informix \ Client-SDK \ etc \ sqlhosts

sqlhosts文件的内容:

ol_srv_custom olsoctcp * nb-desarrollo svc_custom

连接字符串:

**主机= * NB-DESARROLLO;服务= svc_custom;服务器= ol_srv_custom;数据库=事实;用户ID = informix;密码= **********

有什么想法吗?


ODBC也不起作用。当我尝试创建DSN时,驱动程序用户界面要求我从组合框中选择“服务器名称”,但它是空的。事实上,我必须连接到这个Informix安装的唯一方法是使用控制台实用程序dbaccess,这就是我创建测试数据库和插入示例数据的方式。我不确定这个问题是否仍然属于SO,也许ServerFault可能是更合适的地方,但我不知道如何移动它。

2 个答案:

答案 0 :(得分:2)

我还建议你创建ODBC连接并测试它。有关如何使用setnet32(旧版本)的信息:http://www.synametrics.com/ifmxODBC.htm

答案 1 :(得分:0)

Internet中的文档和错误消息具有误导性。 我有同样的错误,与此同时我找到了解决方法。

在安装Windows的Informix Client SDK并将ODBC驱动程序用于Informix(带有或不带有.NET)时,必须传递以下参数:

  1. 主机
  2. 服务器
  3. 服务或端口
  4. 协议
  5. 用户ID
  6. 密码

所有这些参数都是强制。该数据库是可选的。

您的连接字符串中缺少协议。如果缺少任何参数,则OBDC驱动程序在

下的注册表中搜索服务器。

32位驱动程序: HKLM \软件\ Wow6432Node \ Informix \ SQLHOSTS \服务器名称

64位驱动程序: HKLM \软件\ Informix \ SQLHOSTS \服务器名称

如果未在此处列出服务器,则会出现错误“ 服务器XYZ在sqlhosts中未作为数据库服务器名称列出。

请注意,只有Linux使用sqlhosts 文件。在Windows上,相同的数据存储在注册表中。

尽管错误消息和文档以及几个网页使您认为如此,但您无需创建sqlhosts文件。

您不需要使用IBM工具 SetNet32 为服务器生成条目。

您只需要将所有必需参数传递给ODBC驱动程序,错误就会消失。

IBM无法给出更智能的错误消息确实很可惜。