如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,尝试加载 Oracle 客户端库时引发 BadImageFormatException

分类:.Net知识问答| 发布:佚名| 查看: | 发表时间:2013/12/26

尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运
如题,我用的Oracle是32位的,VS是64位的,怎么修改


运行WebService时,提示

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()
  在 WebService.HelloWorld()



------解决方案--------------------
VS自带的WebServer只有32位的,你只能以32位运行,即使你的VS里面编译目标是64位的,

注意:发布到iis,可以以64位运行,你需要安装64位的oracle连接客户端。如果没有,你的程序必须在VS里面编译成x86

via

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/net-wiki/787.html

相关文章