再論使用Oracle Instant Client連接Oracle
我在去年寫過一篇《在IIS中使用Oracle Instant Client連接Oracle》,其中提到的方法在當時的vs2008+iis7+oracle10g的環境下得到了驗證。現在公司將數據庫更新為11g,并使用到了分布式事務,結果在實際操作中出現了一些新的問題。在全體小組成員的努力下,這些問題基本得到了解決,現記錄如下:
1. 操作數據庫時,發生“內存被損壞”,操作失敗。我們發現,如果開發環境同時安裝了10g的客戶端與11g的客戶端,則非常容易出此問題。卸載一個版本就可以了。這個解決方法不是很完美,因為我們即使卸載后,仍然時不時出現這樣的問題。
2.我在那篇文章里說,使用Oracle Instant Client,只能使用10.1.0.5版本,其它版本都會報錯,這其實只是針對服務端是10g的情況。當服務端使用11g時,這個bug貌似得到了解決,我使用10.1.0.5與最新的11.2.0.1.0都能測試成功!
3.當使用Oracle Instant Client時,使用分布式事務,具體為使用System.Transactions.TransactionScope類的時候,報無法加載 DLL“oramts.dll”: 找不到指定的模塊的錯。后來上官網的論壇上查找,才發現這是由于
更多的細節請參考:oracle 分布式事務問題。
參考的文章:
dotConnect, InstantClient, TransactionScope breaking changes
oracle 無法加載 DLL“oramts.dll”: 找不到指定的模塊
關于TransactionScope分布式事務在Oracle下的運作
"無法加載 DLL“oramts.dll”: 找不到指定的模塊。 (異常來自 HRESULT:0x8007007E)。" —— 的解決方法

浙公網安備 33010602011771號