3

私のWCFサービスはOracle.DataAccess.Client、oracle dbに接続するために使用します。次の接続文字列を使用して、1年ほど正常に実行されています。

OracleConnection conn = new OracleConnection(String.Format("USER ID=XXX;PASSWORD=XXX;DATA SOURCE={0}", db));

最近、新しい PC を入手し、Oracle クライアントを再インストールする必要がありました。新しい operationContract を既存のサービスに追加しようとしましたが、新しく追加された ODAC を再参照する必要がありました。突然、繋がらなくなりました。で失敗しますconnection.open();

私の TNSnames.ora ファイルは、以前と同じ場所にあります。私はそれをプロジェクトの bin ディレクトリにコピーしてみました。

ヒキガエルが動作します。OraHome からデータベースを正常に tnsping できます。を使用してデータベースにアクセスできますがSystem.Data.OracleClient、非推奨の dll を使用するためにすべてを書き換えたくありません。

tnsnames が存在し、パスが環境変数で識別され、リスナーが実行されている場合、他に何を確認する必要がありますか? OracleのHKEY_LOCAL_MACHINEキーが間違った OraHome パスを指していることに気付きましたが、パスを変更してもまだ接続しないので、TOAD も機能しなくなるのではないかと心配して元に戻しました。

助言がありますか?

4

1 に答える 1

0

このエラーは、接続をインスタンス化するユーザーにOracleクライアントを実行する権限がない場合に発生する可能性があります。WCFサービスを実行しているアカウントに正しいアクセス許可があることを確認してください。

于 2012-10-23T18:31:26.550 に答える