在64位机器上以32位模式运行Oracle Client
本文关键字:模式 运行 Oracle Client 32位 64位 机器 | 更新日期: 2023-09-27 18:13:40
我刚刚从一台32位的Windows 7台式机转到一台64位的Windows 7笔记本电脑。我们正在开发一个c#程序,其中包含大约60个项目。在尝试构建时,我一直得到以下错误:
Attempt to load Oracle client libraries threw BadImageFormatException. This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed
显然这个错误是不言自明的,我正试图让我的整个解决方案在32位模式下加载。我已经检查了每个项目,并将目标平台设置为x86,但我仍然得到这个错误。我搜索了谷歌,看到了无数不同的方法,但我似乎无法解决这个问题。确保我的项目在64位机器上以32位模式运行的最佳方法是什么?
我正在使用Visual Studio 2008。我目前正在考虑降级到32位,但真的想避免这样做。
我发现即使你在64位机器上运行,你也必须安装32位Oracle客户端(你可以从他们的网站下载安装程序)。
此外,在讨论过程中,人们讨论了32位模式等。这是如何检查/设置IIS 7托管的应用程序。你不需要修改它,但我在这里添加了它,以供将来参考。
- 启动IIS 7并展开服务器名称节点。
- 点击Application Pools节点,找到你正在使用的应用程序池
- 在右侧面板单击高级设置…
- 在弹出框中选中启用32位应用程序设置,这是顶部的第三个选项。
你必须改变你的主。exe文件只运行为32位。你可以在Visual Studio中做到这一点——只需将Platform target从"Any CPU"更改为"x86"。
如果这是不可能的,使用corflags.exe强制现有的exe为32位应用程序。
我已经纠结这个问题好几个月了,终于解决了。我认为所有的帖子都很有帮助,但我有一个缺失的部分。我没有为用户DSN或系统DSN的Oracle实例设置微软ODBC。我用的是Windows 8操作系统。所以对我来说,我必须进入常规的windows搜索,输入ODBC并打开ODBC数据源管理器(32位)。检查在User DSN选项卡或System DSN选项卡上是否有Microsoft ODBC for Oracle设置。如果没有,单击Add并选择Microsoft ODBC for Oracle。填写您想要点击的数据源的信息,然后单击ok。一定要重新启动你的电脑,这对我来说终于奏效了。希望这对你们中的一些人有所帮助。
你必须改变你的主。exe文件只运行为32位。你可以在Visual Studio中做到这一点——只需将"平台目标"从"任意CPU"更改为"x86"。https://msdn.microsoft.com/en-us/library/ms185328.aspx
在我的情况下,64位Oracle客户端安装在我的机器上,但仍然给出相同的错误。所以,我分析了,在我的应用程序转到应用程序右键点击->属性->Web选项卡如果您使用本地IIS Web服务器,则取消选中"使用IIS Express"选项。问题解决了