私はいくつかのマシンで問題を解決するために使っている非常に単純なアプリケーションを開発していますが、それまでにもCPUアーキテクチャの違いやOracleデータベースライブラリなどいくつかの問題がありました。Oracle.DataAccessは、なぜOracle.ManagedDataAccessが機能しないのですか?
私は、C:\oracle\11g\network\admin
ディレクトリにあるtnsnames.ora
のデータベースサーバを持っています。私はこのサーバーをtnspingする場合、私は希望の応答を取得します。 Oracle.DataAccess.Clientを使用してこのサーバーに接続するためにC#プログラムをコード化すると、次のコードで動作します。
string connectionString = "Data Source=DSDSDS;User Id=UNUNUN;Password=PWPWPW;";
DataTable dataTable = new DataTable();
using (var connection = new OracleConnection(connectionString)) {
connection.Open();
using (var command = new OracleCommand()) {
command.Connection = connection;
command.CommandText = sql;
command.CommandType = CommandType.Text;
using (var oda = new OracleDataAdapter(command)) {
oda.Fill(dataTable);
}
}
}
ただし、Oracle.DataAccessは、実行されるシステムのアーキテクチャに依存します。私は、アーキテクチャに依存しない別のライブラリOracle.ManagedDataAccessがあることを知りました。このライブラリを使用すると、サーバーに接続できなくなります。 ORA-12545: Network Transport: Unable to resolve connect hostname
がスローされます。
これはなぜですか?私がこれまでに読んだことに基づいて、これは問題ではないので、これらの2つの図書館の違いは何か。
追加情報:
- %のORACLE_HOME%と%TNS_ADMIN%は定義されていない(つまりTNSPINGとOracle.DataAccessの仕事を覚えている)
C:\oracle\11g\BIN
がPATH定義されています。- 私は.exeファイルと同じ場所にtnsnames.oraファイルを移動した場合は私のマシンが一つだけ
tnsnames.ora
ファイル
を持って、それが動作します。 Oracle.DataAccessがC:\oracle\11g\network\admin
ディレクトリのtnsnames.oraを検索できますが、Oracle.ManagedAccessは検出できないのはなぜですか?
私は実際にかかわらず、App.configファイルでTNS_ADMIN設定の、同じ問題を抱えています。 – flindeberg