最近在做一个小项目,语言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 站点: http://www.oracle.com/technology/tech/windows/ora_mts/index.html (http://www.oracle.com/technology/tech/windows/ora_mts/index.html)

先到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数据库客户端访问组件下载地址: http://www.oracle.com/technology/software/tech/windows/odpnet/index.html

无法加载 DLL“oramts.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)相关推荐

  1. C# 无法加载 DLL 找不到指定的模块 (异常来自HRESULT:0x8007007E)的几种可能情况

    1.DLL引用丢失,或未将该DLL相关的DLL放在文件的目录下 2.当前选择的是x64平台,而DLL只支持x86 3.DLL是C++写的,电脑未安装VC运行时库 4.未配置环境变量

  2. Intel Optane(tm) Memory Pinning 无法加载DLL“iaStorAfsServiceApi.dll“:找不到指定模块。(异常来自HRESULT:0x8007007E)

    Intel Optane™ Memory Pinning 无法加载DLL"iaStorAfsServiceApi.dll":找不到指定模块.(异常来自HRESULT:0x80070 ...

  3. 无法加载 DLL“SQLite.Interop.DLL”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。...

    无法加载 DLL"SQLite.Interop.DLL": 找不到指定的模块. (异常来自 HRESULT:0x8007007E). 在项目里添加  现有项  把SQLite.In ...

  4. c# 无法加载DLL“SQLite.Interop.dll”,: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)

    问题 用到了SQLite,在我的项目环境下调试运行都是正常的,但是发布部署之后报错:无法加载DLL"SQLite.Interop.dll",: 找不到指定的模块. (异常来自 HR ...

  5. 【错误异常大全】:无法加载 DLL“ArcGISVersion.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

    文章目录 错误异常 解决方案 错误异常 无法加载 DLL"ArcGISVersion.dll": 找不到指定的模块. (异常来自 HRESULT:0x8007007E). 解决方案 ...

  6. c# 无法加载DLL:找不到指定的模块(异常来自HRESULT:0X8007007E)

    c# 无法加载DLL:找不到指定的模块(异常来自HRESULT:0X8007007E) 参考文章: (1)c# 无法加载DLL:找不到指定的模块(异常来自HRESULT:0X8007007E) (2) ...

  7. DLL错误之——无法加载DLL “xxxxx.dll” : 找不到指定的模块(异常来自HRESULT:0x8007007E)

    最近一个应用需求,需要调用封装好的DLL,我已经将所用模块复制到bin/Debug目录下,但编译时提示错误:"无法加载DLL"***.dll":找不到指定的模块(异常来自 ...

  8. 【已解决】无法加载 DLL“xxx.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

    目录 异常 背景及产生原因 解决方法 异常 无法加载 DLL"xxx.dll": 找不到指定的模块. (异常来自 HRESULT:0x8007007E). 背景及产生原因 C#中采 ...

  9. c# 无法加载DLL找不到指定的模块。 (异常来自 HRESULT:0x8007007E) 的解决办法之一

    c# 无法加载DLL找不到指定的模块. (异常来自 HRESULT:0x8007007E) 的解决办法之一 用depends.exe 打开dll看看都需要哪些支持文件,特别是通过打开这个文件,depe ...

最新文章

  1. iOS 关于pods-frameworks.sh:permission denied报错的解决
  2. Blend学习资料总结
  3. 2021年下半年软考报考流程!
  4. 个人简介页面如何设计?优秀案例给你灵感
  5. java ajax传递到action_ajax传值到action,后台取不到值。
  6. 《ANSYS Workbench 14有限元分析自学手册》——1.3 ANSYS 14的界面
  7. TypeScript算法专题 - blog1.基于TypeScript语言的单链表实现
  8. 新手福音︱正则表达式小工具RegExr
  9. Windows Server 2012 R2 Update 64位 MSDN原版
  10. 使用Jackson进行json转对象,对象转json总结
  11. android 获取机顶盒ip,在电视机顶盒端查看IP地址 - 零成本让你的电视盒子变身无线路由器...
  12. [从零开始学FPGA编程-4]:快速入门篇 - 操作步骤1 - 常见可编程器件PROM、PLA、PAL、GAL、CPLD、FPGA
  13. Mysql 窗口函数
  14. matlab 自写iradon,MATLAB 常用图像处理源码合集
  15. Realtek USB无线网卡能搜到WiFi 无法连接到网络
  16. C语言——PAT 乙级(1002.读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。)
  17. mysql ext3 ext4_Mysql如何选择文件系统?(ext4 vs ext3 vs jfs vs xfs vs reise
  18. 第十五篇 项目整体管理__项目启动会议、项目目标
  19. 管理三规则——吉格勒定理、洛克定律、韦特莱法则
  20. 2020,神策数据 +

热门文章

  1. C语言合并链表merge linked list(附完整源码)
  2. QT的QUiLoader类的使用
  3. QT的QHttpPart类的使用
  4. 经典C语言程序100例之九七
  5. 经典C语言程序100例之八九
  6. JMeter入门,测试计划编写(http请求)
  7. Strom+Kafka + redis实时计算单词出现频率的案例
  8. WebServices应用集成框架ESB(Enterprise Service Bus 企业服务总线)
  9. 深入浅出之数据格式转换
  10. 嵌入式volatile关键字