3

現在、Oracle データベースに接続しようとしています。開発マシンでは正常に接続できますが、Win2k3 SP2 サーバーにデプロイすると、次のエラーが発生します。

接続を開くことができません... Oracle.DataAccess.Client.OracleException ORA-12541: TNS: Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object scr, Stringプロシージャ、ブール bCheck)

どんな考え、アイデア、指示も役に立ちます。Oracle.DataAccess.dll バージョン 4.112.1.2 を使用しています。

ありがとう

4

4 に答える 4

3

実際の問題はファイアウォールでした。

どうやら私のローカル開発マシンは Oracle をホストするサーバーにアクセスできましたが、私の開発サーバーにはアクセスできませんでした。2 つのサーバー間の接続が開かれると、TNS:no listener エラーはなくなりました。

これは、Oracle クライアントから返された偽のエラー メッセージのようです。リスナーはそこにあり、構成 (接続文字列) は有効でしたが、2 台のマシン間に利用可能な接続がまったくありませんでした。

于 2010-11-01T18:37:21.877 に答える
0

TNSNames エントリが指しているマシンでは、リスナーが実行されていないように見えます。私が見ることができる3つの異なるオプション...(1)エントリがtnsnames.oraで異なるマシンを指している(両方のマシンで異なる)、(2)DNS解決がこれら2つのマシン間で異なる、または(3)リスナーがマシンで別のポートが実行されている場合は、おそらく別のポートでリッスンします。

于 2010-10-28T04:47:15.363 に答える
0

私は別のことも学びました。Network\admin フォルダー内の TNSNAMES.ora ファイルでは、インスタンスの先頭にスペースが含まれています。

例:

MYORACLESERVER =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = tcp)(HOST = myoracleserver.mydomain.com)(PORT = 1525))
    )
    (CONNECT_DATA =
      (SID = MYORACLESERVER)
    )
  )
于 2012-05-07T22:03:05.493 に答える