"無法加載 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
若有問題可按下列步驟解決:
1. 檢查安裝時有沒有裝 Oracle Services for Microsoft Transaction Server 
2.到bin目錄如(oracle/product/10.1.0/db_1/bin),找找有沒有oramts.dll,如果沒有的話就證明沒有安裝上面的服務,可以考慮重新安裝客戶端。 
3.如果是10g的話,看看有沒有oramts10.dll,有的話再復制一份,改名為oramts.dll。
4.如果安裝完客戶端提示連接字符串錯誤!到oracle/product/10.1.0/Client_1/network/ADMIN目錄下,找配置文件tnsnames.ora,有的話打開看里面的連接字符串是怎么寫的,自己寫沒寫錯,沒有的話可以手動添加此文件,示例代碼如下: ORCL =  (DESCRIPTION =    (ADDRESS_LIST =      (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))    )    (CONNECT_DATA =      (SERVICE_NAME = orcl10)    )  )   
5.可以通過客戶端工具Net Configuration Assistant 來重新配置上述連接。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM