ODBC .NET 32位和64位

请帮帮我!

我有用Platform Target = x86编译的WindowsService。 该服务适用于ODBC驱动程序。 在服务器上我有32位和64位ODBC管理器。 在32位ODBC驱动程序上,我安装了Informix驱动程序和系统DSN = TestDb。 在64位 - 没有安装。 没有DSN,没有驱动程序。 当我尝试通过Windows服务运行查询时,它返回错误:

错误[IM014] [Microsoft] [ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序之间的体系结构不匹配

所以我编译我的服务与目标平台= x64并运行在此服务器上。 使用相同的DSN = testDb尝试相同的查询。 我得到错误:

错误[IM002] [Microsoft] [ODBC驱动程序管理器]未找到数据源名称并且未指定默认驱动程序

我发现第三方应用程序的ODBC资源管理器,并尝试运行查询它工作正常。

我不确定是否可以安装用于ODBC 64位的Informix驱动程序,并且我希望使我的服务在所有情况下都能正常工作。

在代码中我使用OdbcConnection类。 有任何想法吗?


我发现了这个问题。 Thx,@HansPassant,你的链接让我以正确的方式思考。 我在服务器上的任务管理器中检查了我的Windows服务的进程。 它用作64位应用程序! 我在我的机器上检查过它,它可以作为32位应用程序。 (在任务管理器中显示为'... exe * 32'过程)。 所以我在这里找到强制.net Windows服务在64位机器上以32位运行如何使Windows以32位服务启动我的应用程序。 现在我的WindowsService可以使用32位ODBC并执行查询。

谢谢。


对于32位和64位驱动程序,ODBC Data Source Administrator是不同的。
ODBC 64位驱动程序使用c:​​ windows system32 odbcad32.exe

ODBC 32位驱动程序使用c:​​ windows sysWOW64 odbcad32.exe

链接地址: http://www.djcxy.com/p/64913.html

上一篇: ODBC .NET 32 bit and 64 bit

下一篇: Can't connect to Access database ("architecture mismatch" error)