I'm developing a Web Service in VS 2005 (ASP.NET 2.0) to call an Oracle 9 DB (don't know exact version) to insert records in it. Unfortunately, I don't have an Oracle 9 DB in my development environment, so I've used Oracle 10g instead. I've also used the Oracle 11g ODAC 11.1.0.5.10 Beta. Things work nicely if I call the Web Service on my test server, but not when I call it on the deployment server:
System.Web.Services.Protocols.SoapException: Server was unable to process request. --->
System.TypeInitializationException: The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception. --->
Oracle.DataAccess.Client.OracleException The provider is not compatible with the version of Oracle client at Oracle.DataAccess.Client.OracleInit.Initialize()
This old thread seem to describe a similar situation:
438959
As I understand the reply, I need to install the 10g client on the deployment server, or rebuild the project with a version of ODP.NET made for Oracle 9? The first alternative is not attractive, since the customer is restrictive against changes on the server. ODP.NET for Oracle 9 appears to be too old (.NET 1.1 and so on). Is ODP.NET a dead end in my situation?
There's something fundamental I don't get about the error. The Web Service is supposed to call an Oracle
server, not a client. Why does the Oracle Data Provider for .NET try to connect to a client?