2014-10-30 87 views
1

是否託管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中?

回答

3

對不起,使用ODP.NET,託管驅動程序時,配置文件和TNSNAMES.ORA都不支持IFILE。

也許TNS_ADMIN配置文件條目會爲你實現同樣的事情。

+0

這看起來確實如此。是否有任何官方文件說明您可以指示我?你也知道非託管的ODP.NET是否支持IFILE?謝謝 – BateTech 2014-10-31 12:10:50

+0

我剛剛注意到你在Oracle ODP.NET產品團隊中。我認爲這對我來說已經足夠了!謝謝您的幫助。我可以將我的所有tnsnames條目合併到一個tnsnames.ora文件中,這對我很有用。 TNS_ADMIN也是另一個不錯的選擇。從最初的測試我真的很喜歡託管的ODP.NET庫! – BateTech 2014-10-31 12:31:26

+1

是的,非託管ODP.NET支持IFILE以及所有其他TNSNAMES參數(在這種情況下我們不必實現它的託管版本 - 它已經由非託管網絡庫處理)。 – 2014-11-01 09:00:58