We are developing an application which runs as a windows service on a Windows 2008 64-bit server; the service runs under the SYSTEM account. The development environment is Visual Studio 2008 using .NET 2.0, on Windows XP 32-bit.
The application runs queries against a remote Oracle 11g database. We have installed "ODAC for Oracle Clients version 11.1.06.21" on the development system and Oracle Client 184.108.40.206.0 from "11107_w2k8_x64_production_client" on the Server installing only the default selection from Oracle Windows Interfaces 220.127.116.11.0. The DLL deployed by our application is Oracle.DataAccess.dll version 18.104.22.168. The installed DLL on the Windows 2008 server is in D:\app\Administrator\product\11.1.0\client_1\ODP.NET\bin\2.x and is Oracle.DataAccess.dll version 22.214.171.124. There is only one Oracle Home on the Windows 2008 server.
Our windows service throws the following exception when run on the server:
Oracle.DataAccess.Client.OracleException The provider is not compatible with the version of Oracle client at Oracle.DataAccess.Client.OracleInit.Initialize()
We also have a desktop based test program which is built in the same environment and with the same libraries. This application connects to the Oracle server and can run queries with no problems.