打开磁盘系统保护找不到指定模块hresult 0x8007007ee

&|&&|&&|&&|&&
当前位置: >
无法加载 DLL“oramts.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)
作者:互联网 & 来源:转载 &
浏览次数:
摘要: 最近在做一个小项目,语言VS2005,C#,数据库Oracle9i,但是为了兼容以前数据库SqlServer2005,以便于数据库版本的切换,事务中,仍然使用 System.Transaction.Transcope的分布式事务,但是事务调试时出现了 无法加载 DLL“oramts.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。 这个错误,
最近在做一个小项目,语言VS2005,C#,数据库Oracle9i,但是为了兼容以前数据库SqlServer2005,以便于数据库版本的切换,事务中,仍然使用 System.Transaction.Transcope的分布式事务,但是事务调试时出现了 无法加载 DLL“oramts.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。 这个错误,
Oramts.dll 文件公开登记 Oracle 连接所涉及到在通过 Microsoft 分布式事务处理协调器 (MSDTC) 启动的事务中的公共 API。 在事务处理环境中运行时, System.Data.OracleClient 程序集调用这些 API。
System.Data.OracleClient 程序集的早期版本不支持分布式的事务。 因此,该依赖项不存在 System.Data.OracleClient 程序集版本 1.1 之前。
当您执行分布式的事务活动时 System.Data.OracleClient 程序集使用 Oramts.dll 文件。 当您尝试执行 nontransacted 活动时, 或者当您使用本地事务时不加载 System.Data.OracleClient 程序集。 如果 Oracle 客户端连接软件,在安装过程中不包括此组件,您尝试使用分布式的事务与 System.Data.OracleClient ,您可能会收到以下错误信息: System.Data.OracleClient: Unable to load DLL (oramts.dll) 与 Oracle 客户端连接组件安装在 Oramts.dll 文件。 它不被分发使用任何 Microsoft 软件。 Oramts.dll 文件不是作为默认安装包含在安装 Oracle 客户端连接软件时。 若要安装此组件必须单击以选中 Oracle Services for Microsoft Transaction Server 在安装 Oracle 客户端连接软件时复选框。 有关这些组件的信息,请访问下面的 Oracle Web 站点:
先到Oracle官方网站上面下载ODAC92070.exe因为这是为了支持分布式事务的一个数据库连接包,Oracle跟微软官方网站上有说明,Oracle不支持单独将oramts.dll分布的方式,就是说这个包不能单独下载,只能下载这个安装, 安装完成后,
再运行代码,仍就事务出错,报的错误一样,查看环境变量中的path,并在Oracle92Home目录,查找oramts.dll已经存在,
后来在一网站(英文的)不记得了,说Oramts.dll这个dll是因为在debug模式下面编译的,所以不能正常使用
通过DependencyWalker查看依赖项,发现少了msvcrtd.dll,这个在装上Vs6.0,VC++的机器上有,这是一个VC的编译器文件,
然后下载一个msvcrtd.dll拷贝到C:\windows\System32下面,再试分布式事务,成功
希望这编文章能给刚开始使用VS2005+Oracle数据库的一些朋友一点点帮助.
当然你要是使用Oracle10g,Oracle11g相关版本,只要下载对应的Oracle Data Access Components (ODAC)数据访问组件就可解决 Oracle数据库客户端访问组件下载地址:
版权所有 IT知识库 CopyRight (C)
, All Rights Reserved.c# 无法加载 DLL xxxxxxxx找不到指定的模块。 (异常来自HRESULT:0x8007007E)。的一个解决方法
时间: 16:26:01
&&&& 阅读:759
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&最近在做一个程序,想把某些功能用C++写成DLL供C#调用.但是无法如何都无法调用,提示"无法加载 DLL xxxxxxxx找不到指定的模块。 (异常来自HRESULT:0x8007007E)。"
而这个DLL放在另外一个程序却可以正常调用,经过仔细对比两者的区别时,发现这个DLL需要另外一个DLL文件,而另外的程序有另外的DLL,这个程序没有.于是把这个DLL放在这个程序的目录下就能正常调用自己写的DLL了.呵呵,真是惭愧.标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:/billboy/p/4724558.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 找不到模块0x8007007e 的文章

 

随机推荐