Oracle データベースにアクセスするために、C# アプリケーションでODP.NET、Managed Driver Beta (Oracle.ManagedDataAccess.dll) を使用しています。これは、Oracle Client 10g/11g/etc のすべてのローカル依存関係を削除するために、ODP.NET のネイティブ バージョンの使用を置き換えるものです。これをローカルにインストールする必要がないようにします。これは私が見つけた解決策ですhere。
これは私のC#コードです:
new OracleConnection("Data Source=ABCDEFG1;User Id=myuserid;Password=mypassword;").Open();
この行に到達し、OracleConnection
オブジェクトが正常に作成され、すべての依存関係が正常にロードされたことを示しています。ただし、への呼び出しでOracleExceptionOpen()
をスローします。エラーメッセージは次のとおりです。
ネットワーク トランスポート: 接続ホスト名を解決できません
私の組織は、LDAP を使用してホスト名のルックアップを実行します。これは、DIRECTORY_SERVER 設定を使用して ORA ファイルを介して実行されます。ただし、ODP.NET のマネージド バージョンを使用してこれを実行するのは困難です。ORA ファイルは C:\Apps\oracle\network\admin に保存されます。
データ ソース ('ABCDEFG1') の tnsping は正常に動作します。そこで、tnsping の出力を使用し、この出力を使用して tnsnames.ora に ABCDEFG1 のエントリを追加しました。その後、私のアプリケーションは正常に接続されました。したがって、ORAファイルを確実に見つけて使用していることはわかっていますが、何らかの理由で、管理されていないODP.NET(他のアプリケーション)が使用するLDAPルックアップを実行しません。
この新しい管理された ODP.NET を使用したことのある人は、この問題または私が間違っている可能性があることを認識していますか?