2017-09-01 81 views
0

NuGetパッケージOracle.ManagedDataAccessを使用しています。 OracleConnection.Open();を呼び出すと、タイトルに誤りがあります。私の接続文字列はData Source=RAEDB;User ID=*****;Password=*****;のようになります。 tnsnames.oraでは、このデータソースはORA-12154:TNS:指定された接続識別子を解決できませんでした

RAEDB = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = OraDB_IHDB)(PORT = 1521)) 
    (LOAD_BALANCE = yes) 
    (CONNECT_DATA =  
     (SERVER = DEDICATED) 
     (SERVICE_NAME = ihdb) 
    ) 
) 

我々はsqlnet.oraを使用しないように設定されているので、tnsnames.oraがデフォルトで使用されています。

これはNuGetパッケージバージョン12.2.1100でのみ発生しますが、12.1.24160419では発生しません。パッケージのバージョンに問題があるか、私が逃した構成ですか?

+0

この回答を見てください:https://stackoverflow.com/questions/28280883/determining-locatation-of-relevant-tnsnames-ora-file/28283924#28283924明らかに 'tnsnames.ora'ファイルの検索パターンリリースによって異なります。 –

答えて

0

tnsnames.oraはどこに保存されていますか? documentation(12Cリリース4(12.1.0.2.4))をよれば、サーチパスは:NETの設定ファイルでTNS_ADMINによって指定された位置にtnsnames.oraファイルの

  1. データソースエイリアス。ロケーションは、絶対パスまたは相対パスのいずれかで構成できます。
  2. tnsnames.oraファイルのデータソースエイリアスは、.exeと同じディレクトリにあります。

しかし、私はODP.NET ManagedDriver(4.121.2.0)で作られたいくつかのテストに基づいて、それを考慮にも%ORACLE_HOME%\network\adminTNS_ADMIN環境変数を取ります。ドキュメントのようなロックは100%正確ではありません。

他のドライバとは異なり、ODP.NET ManagedDriverはレジストリからTNS_ADMIN値を読み取ることはありません。

+0

'%ORACLE_HOME%\ network \ admin'に' tnsnames.ora'を使用しようとしています。つまり、ODP.NET管理対象ドライバ(4.122.2.0(NuGet Package v12.2.1100))では、 '%ORACLE_HOME%\ network \ admin'に' tnsnames.ora'を使用しませんが、ドライバ( 4.121.2.0(NuGet Package v12.1.24160419))は動作しますか? – lenny

+0

私は分かりません。ドキュメントは '%ORACLE_HOME%\ network \ admin'を使用していないと書いています –

+0

ドライババージョン4.121.2.0を使用しているので – lenny

関連する問題