是否託管ODP.NET x64 12.1.0.2 tnsname.ora是否支持使用IFILE?我無法讓它工作。ODP.NET託管tnsnames.ora IFILE參考
例如,正常的「胖客戶端」我已經安裝了數年的非託管Oracle客戶端,我曾經有過我的tnsnames.ora文件與上一行:
IFILE=C:\OracleDataSources\tnsnames.MAIN
然後是C:\ OracleDataSources \ tnsnames.MAIN文件包含IFILE對配置文件的引用,這些文件包含組織中每個其他Oracle實例的實際數據源定義。這有助於保持我們的配置文件集中並與安裝文件分開,並且在使用完整的Oracle客戶端安裝時無錯誤地工作。
現在我正在努力升級一些使用舊版/棄用System.Data.OracleClient引用的代碼來使用ODP.NET託管客戶端。如果我嘗試使用與管理ODP.NET庫IFILE引用,我得到以下錯誤:
ORA-12154: TNS:could not resolve the connect identifier specified
故障診斷過程中,我證實,正在從tnsnames.ora中使用Oracle.ManagedDataAccess.Client.OracleDataSourceEnumerator.GetDataSources()
方法(檢索到的任何數據源http://docs.oracle.com/html/B28089_01/OracleDataSourceEnumeratorClass.htm#CBAHABEH),它將返回從tnsnames.ora枚舉的所有數據源的列表。
當在tnsnames.ora中只使用IFILE參考時,我從GetDataSources
獲得0個結果。如果我手動將數據源別名直接添加到web.config TNS_ADMIN設置(而不是使用IFILE參考)中指定的文件夾中的tnsnames.ora文件,則數據源將正確返回GetDataSources
,並且我可以連接到數據源代碼使用ODP.NET成功。
有沒有什麼辦法可以將IFILE的tns名稱引用到ODP.NET中?
這看起來確實如此。是否有任何官方文件說明您可以指示我?你也知道非託管的ODP.NET是否支持IFILE?謝謝 – BateTech 2014-10-31 12:10:50
我剛剛注意到你在Oracle ODP.NET產品團隊中。我認爲這對我來說已經足夠了!謝謝您的幫助。我可以將我的所有tnsnames條目合併到一個tnsnames.ora文件中,這對我很有用。 TNS_ADMIN也是另一個不錯的選擇。從最初的測試我真的很喜歡託管的ODP.NET庫! – BateTech 2014-10-31 12:31:26
是的,非託管ODP.NET支持IFILE以及所有其他TNSNAMES參數(在這種情況下我們不必實現它的託管版本 - 它已經由非託管網絡庫處理)。 – 2014-11-01 09:00:58