无法加载 DLL“oramts.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)
最近在做一個(gè)小項(xiàng)目,語言VS2005,C#,數(shù)據(jù)庫(kù)Oracle9i,但是為了兼容以前數(shù)據(jù)庫(kù)SqlServer2005,以便于數(shù)據(jù)庫(kù)版本的切換,事務(wù)中,仍然使用
System.Transaction.Transcope的分布式事務(wù),但是事務(wù)調(diào)試時(shí)出現(xiàn)了 無法加載 DLL“oramts.dll”: 找不到指定的模塊。 (異常來自 HRESULT:0x8007007E)。
這個(gè)錯(cuò)誤,
解決方法:
Oramts.dll 文件公開登記 Oracle 連接所涉及到在通過 Microsoft 分布式事務(wù)處理協(xié)調(diào)器 (MSDTC) 啟動(dòng)的事務(wù)中的公共 API。 在事務(wù)處理環(huán)境中運(yùn)行時(shí), System.Data.OracleClient 程序集調(diào)用這些 API。
System.Data.OracleClient 程序集的早期版本不支持分布式的事務(wù)。 因此,該依賴項(xiàng)不存在 System.Data.OracleClient 程序集版本 1.1 之前。
當(dāng)您執(zhí)行分布式的事務(wù)活動(dòng)時(shí) System.Data.OracleClient 程序集使用 Oramts.dll 文件。 當(dāng)您嘗試執(zhí)行 nontransacted 活動(dòng)時(shí), 或者當(dāng)您使用本地事務(wù)時(shí)不加載 System.Data.OracleClient 程序集。 如果 Oracle 客戶端連接軟件,在安裝過程中不包括此組件,您嘗試使用分布式的事務(wù)與 System.Data.OracleClient ,您可能會(huì)收到以下錯(cuò)誤信息:
System.Data.OracleClient: Unable to load DLL (oramts.dll)
與 Oracle 客戶端連接組件安裝在 Oramts.dll 文件。 它不被分發(fā)使用任何 Microsoft 軟件。 Oramts.dll 文件不是作為默認(rèn)安裝包含在安裝 Oracle 客戶端連接軟件時(shí)。 若要安裝此組件必須單擊以選中 Oracle Services for Microsoft Transaction Server 在安裝 Oracle 客戶端連接軟件時(shí)復(fù)選框。 有關(guān)這些組件的信息,請(qǐng)?jiān)L問下面的 Oracle Web 站點(diǎn): http://www.oracle.com/technology/tech/windows/ora_mts/index.html (http://www.oracle.com/technology/tech/windows/ora_mts/index.html)
先到Oracle官方網(wǎng)站上面下載ODAC92070.exe因?yàn)檫@是為了支持分布式事務(wù)的一個(gè)數(shù)據(jù)庫(kù)連接包,Oracle跟微軟官方網(wǎng)站上有說明,Oracle不支持單獨(dú)將oramts.dll分布的方式,就是說這個(gè)包不能單獨(dú)下載,只能下載這個(gè)安裝,
安裝完成后,
再運(yùn)行代碼,仍就事務(wù)出錯(cuò),報(bào)的錯(cuò)誤一樣,查看環(huán)境變量中的path,并在Oracle92Home目錄,查找oramts.dll已經(jīng)存在,
后來在一網(wǎng)站(英文的)不記得了,說Oramts.dll這個(gè)dll是因?yàn)樵赿ebug模式下面編譯的,所以不能正常使用
通過DependencyWalker查看依賴項(xiàng),發(fā)現(xiàn)少了msvcrtd.dll,這個(gè)在裝上Vs6.0,VC++的機(jī)器上有,這是一個(gè)VC的編譯器文件,
然后下載一個(gè)msvcrtd.dll拷貝到C:\windows\System32下面,再試分布式事務(wù),成功
希望這編文章能給剛開始使用VS2005+Oracle數(shù)據(jù)庫(kù)的一些朋友一點(diǎn)點(diǎn)幫助.
當(dāng)然你要是使用Oracle10g,Oracle11g相關(guān)版本,只要下載對(duì)應(yīng)的Oracle Data Access Components (ODAC)數(shù)據(jù)訪問組件就可解決
Oracle數(shù)據(jù)庫(kù)客戶端訪問組件下載地址: http://www.oracle.com/technology/software/tech/windows/odpnet/index.html
總結(jié)
以上是生活随笔為你收集整理的无法加载 DLL“oramts.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 土下座(说一说土下座的简介)
- 下一篇: oninput,onpropertych