System.data.OracleClient使用七位64位操作系统上的32位oracle客户端驱动程序

我有一个Web应用程序从asp.net 1.1(VS 2003)迁移到Asp.net 2(VS 2008)。 在新版本上执行Oracle连接时遇到问题。 开发环境是64位七。 当与所有的CPU生成应用程序时,我有System.Data.OracleClient上的一个问题,exceptionSystem.BadImageFormatException:暂定de chargement d'un program de格式不正确。 (exception德HRESULT:0x8007000B)。 。 我生成的x86 CPU上,我有这个错误开始:

[BadImageFormatException:不可能使用'Fimier'组装'CpimWebApplication'或其他方式。 暂定格式不正确。]
System.Reflection.Assembly._nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,Assembly locationHint,StackCrawlMark&stackMark,Boolean throwOnFileNotFound,Boolean forIntrospection)+0
System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef,证据assemblySecurity,StackCrawlMark&stackMark,Boolean forIntrospection)+416
System.Reflection.Assembly.InternalLoad(String assemblyString,证据assemblySecurity,StackCrawlMark&stackMark,Boolean forIntrospection)+166 System.Reflection.Assembly.Load(String assemblyString)+35
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName,布尔星指令)+190

有什么问题 ? 机器上的Oracle客户端是32位版本。 我在网上读过,它不可能利用32位Oracle客户端System.data.OracleClient? 安装64位Oracle客户端是解决scheme吗? TIA的问候

Solutions Collecting From Web of "System.data.OracleClient使用七位64位操作系统上的32位oracle客户端驱动程序"

如果以64位模式运行应用程序,则不能使用32位Oracle驱动程序。

您需要安装64位Oracle驱动程序并以64位模式运行您的应用程序,

要么

设置应用程序以32位模式运行。 您可以通过选择您的应用程序池在IIS中执行此操作,转到高级设置并将“启用32位应用程序”设置为true。

GTG是对的。

但是,不建议使用System.Data.OracleClient。 微软不再支持它。

所以,我建议你使用Oracle Data Provider for .Net:ODP.Net。

你可以从下载:

适用于Microsoft Windows(32位)的 Oracle数据库11g第2版客户端(11.2.0.1.0)适用于Microsoft Windows(x64)的Oracle数据库11g第2版客户端(11.2.0.1.0)

对于开发(Win7的64位),使用32位的味道。 我试过64位Oracle客户端,但没有成功。 对于生产(Wind2008R2 64位),使用64位风格。 请注意,它们必须是相同的版本(11.2.1.0)。

此外,请确保您编译您的应用程序的“任何CPU”,添加引用到Oracle.DataAccess,设置“具体版本”为“真”和“本地副本”为“假”。 通过这样做,当您将应用程序部署到生产环境时,它将从GAC中查找相同的版本(11.2.1.0,64位等效)。