私は新しい(ASP.NET)開発者であり、その一部がOracleデータベースに接続している既存のプロジェクトから始めています。私はこれまでOracleを使用したことがありません。
WebアプリがOracleへの接続を試みた時点で、上記の例外がスローされます。
他の多くの投稿がこの例外について言及していますが、私はすべてのアドバイスに従ったが役に立たなかったと感じています。
これが私のセットアップの概要です:
- Oracleクライアントバージョン11.2.0をホームディレクトリ「C:\ app \ TroughT \ product \ 11.2.0\dbhome_1」にインストールしました
- 別の開発者マシン(これがすべて機能する)からのtnsnames.oraファイルを「C:\ app \ TroughT \ product \ 11.2.0 \ dbhome_1 \ NETWORK\ADMIN」に追加しました
- sqlnet.oraのAPP_BASE変数を「C:\ app \ TroughT \ product \ 11.2.0 \ dbhome_1\log」に変更しました
- 私は(今のところ)dbhome_1ディレクトリ全体とサブディレクトリをEveryoneに完全に制御できるようにしました
- Oracle Net Managerで、ASP.NET接続文字列で使用されているのと同じセキュリティクレデンシャルを使用して関連する接続をテストしました。テストはOKです。
- 値が「C:\ app \ TroughT \ product \ 11.2.0 \ dbhome_1 \ NETWORK\ADMIN」のTNS_ADMINシステム変数を追加しました
私たちは何かを逃したに違いありませんが、私はただ何を知りません。助けてください!
アップデート:
接続文字列のSIDを、tnsnames.oraファイルの完全な定義に置き換えると実際に機能することがわかりました。以下の例。ASP.NETがtnsnames.oraファイルを見つけられなかったことと関係があるはずですが、ファイルが有効であり、すべてのシステム変数が正しい場所を指していることがわかる限りです。少なくとも今は作業中ですが、tnsnames.oraファイルが機能しない理由を理解したいと思います。
失敗した接続文字列:
"Data source=RMSUSNAP;User ID=uuuu;Password=pppp;"
動作中の接続文字列:
"Data source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = replaced.host.name)(PORT = 1521))(CONNECT_DATA =(SID = rmsusnap)));User ID=uuuu;Password=pppp;"
tnsnames.oraの関連部分:
RMSUSNAP.WORLD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = replaced.host.name)(PORT = 1521))
(CONNECT_DATA =(SID = rmsusnap))
)