0

Oracle データベースに触れる Web サービスがあります。

ODP.net oracle データ プロバイダーを使用しています。実際のアセンブリは Oracle.DataAccess.dll と呼ばれていると思います。
ローカル マシンではすべて正常に動作しますが、サーバーに昇格すると、常にこの例外が発生します...

Oracle.DataAccess.Client.OracleException: The provider is not compatible with the version of Oracle client

サービスに現在のDLLを強制的に使用させるなど、複数のことを試しました...

<configSections>
   <section name="oracle.dataaccess.client" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>

  <oracle.dataaccess.client>
    <settings>
      <add name="DllPath" value="C:\WebSites\xxxx.yyy.zzz\OracleDllBinNewbin\Oracle.DataAccess.dll" />
    </settings>
  </oracle.dataaccess.client>
4

1 に答える 1

0

ローカルで実行している間は、32 ビット/x86 プロセスで実行している可能性があります (Visual Studio 自体は x86 ホストです)。サーバー上で実行すると、x64 プロセスになります。

私が理解していることから、Oracle Data Client dllはx86またはx64のいずれかであり、DLLが2つをシームレスに切り替えることができる「任意のCPU」を保持するMS dllとは異なります。

ローカル マシン上のホスティング アプリケーションを強制的に X64 で実行し ([プロジェクト プロパティ]、[ビルド])、何が起こるかを確認します。

私はまだローカルワークステーションとサービスの間の参照を切り替える方法を見つけようとしています.あなたの小さなxmlスニペットが私に手がかりを与えてくれました!

于 2013-10-08T15:24:03.160 に答える