当前位置:编程学习 > C#/ASP.NET >>

.net运行时报此错,如何解决

“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B) 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.BadImageFormatException: 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)

源错误: 


行 287:    {
行 288:        List<T> list = new List<T>();
行 289:        DataTable table = entity.Fill(where);
行 290:        foreach (DataRow row in table.Rows)
行 291:        {
 

源文件: F:\net\DQ\Bll\ExtClass.cs    行: 289 

堆栈跟踪: 


[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) +0
   System.Data.OracleClient.OCI.DetermineClientVersion() +178

[InvalidOperationException: 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。]
   System.Data.OracleClient.OCI.DetermineClientVersion() +459
   System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(String userName, String password, String serverName, Boolean integratedSecurity, Boolean unicode, Boolean omitOracleConnectionName) +63
   System.Data.OracleClient.OracleInternalConnection..ctor(OracleConnectionString connectionOptions) +133
   System.Data.OracleClient.OracleConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) +40
   System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +29
   System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +433
   System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +72
   System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +457
   System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +100
   System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +116
   System.Data.OracleClient.OracleConnection.Open() +40
   System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState) +31
   System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +112
   System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior) +162
   System.Data.Common.DbDataAdapter.Fill(DataTable dataTable) +115
   Winston.Data.Common.DataAccess.Fill(DataTable dt, String sql) +133
   Winston.Data.Common.DataAccess.Fill(String sql) +101
   Winston.Data.Common.Entity.Fill(Nullable`1 top, String paramfields, Where where, String order) +514
   Winston.Data.Common.Entity.Fill(String paramfields, Where where, String order) +98
   Winston.Data.Common.Entity.Fill(String paramfields, Where where) +71
   Winston.Data.Common.Entity.Fill(Where where) +72
   ExtClass.FillList(T entity, Where where) in F:\net\DQ\Bll\ExtClass.cs:289
   Bll.DataIndex.DataIndex.UploadAllIndex() in F:\net\DQ\Bll\DataIndex\DataIndex.cs:638
   Web.Global.Application_Start(Object sender, EventArgs e) in F:\net\DQ\Web\Global.asax.cs:21

 

--------------------编程问答-------------------- 我的是win7 64位,oracle11g 64位  ,vs2008 --------------------编程问答-------------------- 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。 --------------------编程问答--------------------
你是用EF框架来做?试着用Ado.net吧。、 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 还是没有搞定呀 --------------------编程问答-------------------- 那位帮解决下,万分感谢 --------------------编程问答-------------------- 一般有两种情况,低版本的库调用搞版本的库,库的平台不匹配 --------------------编程问答-------------------- 老兄,怎么解决 --------------------编程问答-------------------- 要么换一个匹配的dll,要么重新设置编译自己的dll使它们匹配 --------------------编程问答--------------------
引用 9 楼 sbwwkmyd 的回复:
要么换一个匹配的dll,要么重新设置编译自己的dll使它们匹配


怎么换法,刚学.net不太懂呀 --------------------编程问答-------------------- 自已顶000000000 --------------------编程问答-------------------- 那位遇过呀,帮一下呗 --------------------编程问答-------------------- 除 --------------------编程问答--------------------
引用 1 楼 xwt799023 的回复:
我的是win7 64位,oracle11g 64位  ,vs2008


给你个忠告:如果你只是简单地对Oracle“增删改查”,那么使用微软的 System.Data.OracleClient,而不是Oracle的组件。

实际上微软的组件是最经得起千锤百炼的,而Oracle的那些你需要根据各种环境重新配置。甚至你调试好了,一旦发布之后,还要再跑到用户机器上去手工配置。

微软的组件,自适应32bit、64bit,而且跟微软的其它(例如ADO.NET)功能需求也是配合的天衣无缝的。

为什么微软会自己在2010年为这个组件打上“已过期”的标记?我觉得这是微软sb的表现,没有什么别的解释。你大可不必在意!这个组件可以再用10年,过了10年微软公司还存在不存在都是一个问题了(假设微软还是这样越来越伤害Developer的话!) --------------------编程问答-------------------- 你的这个问题,凡是在64位高版本操作系统(win7、win8、win2008 R2版)上搞开发的人几乎全都遇到过。不算什么新鲜事! --------------------编程问答--------------------
引用 14 楼 sp1234 的回复:
引用 1 楼 xwt799023 的回复:我的是win7 64位,oracle11g 64位  ,vs2008

给你个忠告:如果你只是简单地对Oracle“增删改查”,那么使用微软的 System.Data.OracleClient,而不是Oracle的组件。

实际上微软的组件是最经得起千锤百炼的,而Oracle的那些你需要根据各种环境重新配置。甚至你调试好了……


没理解你的说法,主要是刚接触.NET,有些东西还不懂呀,能否远程帮看下,多谢~
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,