在64位机子用.net连接oracle

一一一一 2015-06-01 10:44:12
System.InvalidOperationException: 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。 ---> System.BadImageFormatException: 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
在 System.Data.Common.UnsafeNativeMethods.OCILobCopy2(IntPtr svchp, IntPtr errhp, IntPtr dst_locp, IntPtr src_locp, UInt64 amount, UInt64 dst_offset, UInt64 src_offset)
在 System.Data.OracleClient.OCI.DetermineClientVersion()
--- 内部异常堆栈跟踪的结尾 ---
在 System.Data.OracleClient.OCI.DetermineClientVersion()
在 System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(String userName, String password, String serverName, Boolean integratedSecurity, Boolean unicode, Boolean omitOracleConnectionName)
在 System.Data.OracleClient.OracleInternalConnection..ctor(OracleConnectionString connectionOptions)
在 System.Data.OracleClient.OracleConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
在 System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
在 System.Data.OracleClient.OracleConnection.Open()


==============================
连接串是这样的
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=test)));User ID=sa;Password=sa;Unicode=True;


网上了将解决方案和项目生成的目标平台设为X86也没用


...全文
207 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ascarl2010 2019-05-09
  • 打赏
  • 举报
回复
引用 6 楼 苦逼de小Coder 的回复:
按照你的方法成功了,谢谢
一一一一 2015-06-04
  • 打赏
  • 举报
回复
解决了 按这篇文章http://www.cnblogs.com/joey0210/archive/2012/08/15/2640248.html 我是卸载后重新安装,然后安装win32_11gR2_client.zip 就可以了
苦逼de小Coder 2015-06-02
  • 打赏
  • 举报
回复
苦逼de小Coder 2015-06-02
  • 打赏
  • 举报
回复
这个我遇到过,你再VS里把项目生成设置到你机器里IIS里,用本地的IIS启动,别用VS自带的IIS启动,然后记得在IIS的应用池的高级选项中把【以32位启动】设置为false
於黾 2015-06-02
  • 打赏
  • 举报
回复
你先确定你的程序在32位的机子上能运行,再纠结什么64位下不能运行 如果32位也根本运行不了,它就跟64位不64位没什么关系
於黾 2015-06-02
  • 打赏
  • 举报
回复
你到底用的oracle提供的oracle.dll还是ODAC(ora.dll)? 看你的连接串像ODAC,但是看你报的错误又像是oracle.dll
一一一一 2015-06-01
  • 打赏
  • 举报
回复
上网找的将解决方案和项目生成的目标平台设为X86也没用

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧