our scenario is the following:
We are developing a webSite in ASP.Net /C#. This webSite should be quering an Oracle 11g server installed on a Windows 2008 R2 server.
The client provided an exact same version of their server with the only difference it is a 32 bit version of Windows.
We developed the WebSite in a windows 8.1 pro machine with Visual Studio 2013 and Oracle client 11g 32bit version added to the project as a 'Reference', and it works perfect.
Now, when we went to deploy the webSite in their production server we received an error "[OracleException (0x80004005): The provider is not compatible with the version of Oracle client]".
After checking everything we have notice 2 differences:
1. It is a 64 bit version of Windows Server 2008 R2.
2. Its Oracle client version is 64 bit which references to Oracle.DataAccess component version 4.x...
In our development machine we use the 32 bit version which references to Oracle client library '188.8.131.52' (Oracle.Dataccess.dll)
We suspect of the ConnectionString but we don't know how to convert it to a 64bit one.
in 'Web.Config file' we have:
<add name="ConnectionString" connectionString="DATA SOURCE=DCTM;PASSWORD=passwd;USER ID=REPOSITORY_DEV_DBO" providerName="Oracle.DataAccess.Client" />
in our 'DBManager.CS' file we have:
public DataTable ExecuteSqlGet(String sql)
DataTable datos = new DataTable();
OracleConnection conn = new OracleConnection();
conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
OracleCommand comm = new OracleCommand(sql, conn);
OracleDataReader reader = comm.ExecuteReader();