Oracle.DataAccess.dll アセンブリ バージョン 2.102.2.20 (32 ビット) を使用しています。
Web API アプリケーションを IIS にデプロイし、接続を開いたり閉じたりしようとしました。
private static void CheckConnectionUsingOracleClient(string connection)
{
var logger = DiContainer.Resolve<ILogger>();
try
{
logger.LogInfo("Trying to connect to " + connection);
// check whether you can connect to the shop using Oracle.DataAccess
using (var cnn = new Oracle.DataAccess.Client.OracleConnection(connection))
{
cnn.Open();
cnn.Close();
}
logger.LogInfo("Succeeded to connect to " + connection);
}
catch (System.Exception ex)
{
logger.LogError("Failed to connect to " + connection, ex);
}
}
私のローカル マシンでは問題ありませんが、このサーバーでは OracleConnection を初期化しようとすると例外がスローされます。
「Oracle.DataAccess.Client.OracleConnection」の型初期化子が例外をスローしました。---> Oracle.DataAccess.Client.OracleException: プロバイダは Oracle クライアントのバージョンと互換性がありません
サーバーに Oracle クライアント 11.2 (32 ビット) をインストールしました。GAC (c:\windows\assembly) で、Oracle.DataAccess アセンブリが 32 ビット プロセッサ アーキテクチャにインストールされていることがわかります。私たちのサーバーの 1 つで問題なく動作しますが、このサーバーでは動作しません。
IISでも、アプリケーションプールで「32ビットアプリケーションを有効にする」を設定しました。
どうすれば修正できますか?これまでに10時間以上、さまざまなことを試してきました:(
サーバーに Oracle クライアントをインストールしなくても、Oracle.DataAccess.dll を使用できるようにしたいと考えています。