リモートOracle 10gデータベースに接続するデスクトップアプリのセットアップを作成しました。リモートマシンにセットアップをインストールしてアプリケーションを実行すると、次のエラーが表示されます。
system.data.oracleclient requires Oracle client software version 8.1.7 or greater
私の開発マシンでうまく機能します。
エラーメッセージは一目瞭然です。アプリケーションを実行しているマシンにOracle Clientをインストールする必要があります。開発用PCにはすでにインストールされています。ターゲットPCにもそれがあることを確認してください。
編集:System.Data.OracleClient名前空間は廃止されました。データベースシステムにネイティブのドライバーを使用していることを確認してください。これは OracleのODP.NET です。
これはセキュリティの問題であるため、修正するには次のようにします。
C:\ app\insolution\product\11.2.0\client_1\BINに移動し、oci.dllを見つけます。右クリック->プロパティ-> [セキュリティ]タブで、[編集]-> [追加]ボタンをクリック->ここで、IUSRとIIS_IUSRSという名前の2人の新しいユーザーを追加し、フルコントロールを付与します。それでおしまい。
Oracle Client 11.02.04のインストール後、サーバーを再起動し、WWWなどのルートフォルダーにフルコントロールでUSERS(ローカルコンピューター)が追加されていることを確認します。
テスト済み、機能しました。
リモートマシンでは、System.Data.OracleClientは、.Netの一部ではないOracle dllの一部にアクセスする必要があります。ソリューション:
ローカルマシンでは、おそらく、Oracleクライアントへのパスが、パス環境変数にすでに追加されており、必要なdllがアプリケーションで使用できますが、リモートマシンでは使用できません
古いクライアントを使用する必要がある場合、ここに私の経験があります。
開発マシンが32ビットクライアントを実行するように、32ビットサーバーを実行しています。 11.1インストールを実行すると、11.2でエラーが発生します。 11.2バージョンをインストールしたら、ファイルを手動で削除する必要がありますOracle.Web.dll
およびSystem.Data.OracleClient.dll
から %windir%\Microsoft.NET\Framework\v2.0.50727
、11.1を再インストールしてから、gacutil.exe
。
これにより、システムの問題が修正されました。