ODP.NETを使用してOracle DBにデータを継続的に記録するサービスをVB.NETで作成しています
このアプリケーションは、もともと基本的な Windows フォーム アプリとして作成され、動作しますが、サービスに移植すると、TNS ファイルを認識できず、次のエラー メッセージが表示されます。
Service cannot be started. Oracle.DataAccess.Client.OracleException
ORA-12154:TNS:could not resolve the connect identifier specified
したがって、次の例の接続文字列を使用する場合
"Data Source= example;User Id= user;Password=password;"
ORA-12154 が発生します
完全な TNS エントリをアプリに直接提供するとします。
"Data Source= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = EXAMPLE)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = EXAMPLE) ) );User Id= user;Password=password;"
その後は機能しますが、最初にアプリをフォームアプリケーションとして開発したときは、どちらの方法でも機能しました。
環境変数が正しく設定されていない可能性があると思いましたが、必要なシステム変数 (ORACLE_HOME / TNS_ADMIN / oracle フォルダーを PATH に追加) を追加しましたが、機能しません。
サービスが実行されている/インストールされたパスに括弧が含まれていません。プロセスモニターでプロセスを確認しましたが、正しい環境変数で起動されているようです (ORACLE_HOME / TNS_ADMIN / PATH はすべてそこにあり、正しい) . テストに使用されているマシンは Win XP を実行しています
ここで何が欠けていますか?
ありがとう