Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Oracle.DataAccess Error

I have an asp.net / C# web application running in a Windows environment. The project builds fine and runs perfectly on my local machine's VB.net development server.

However, when I publish to the real application server I receive the following error message:

[OracleException (0x80004005): The provider is not compatible with the version of Oracle client] [TypeInitializationException: The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception.]

There is a version of this application currently up and running just fine, I am testing on the live server in a different directory. I even tried snagging the Oracle.DataAccess .dll from the working application but still get the same error message.

like image 488
Baxter Avatar asked Dec 03 '22 04:12

Baxter


1 Answers

First off: The Oracle client/provider is a mess. And that goes for both the MS one (depreciated anyway) as well as the Oracle one.

In order to connect to an Oracle DB via the ODP.NET provider three things need to be setup properly:

  • Oracle client needs to be setup properly ( has nothing to do with the .NET provider, this referring to the installed oracle client usually in c:\oracle)
  • The ODP.NET provider needs to be compatible with the installed Oracle client
  • The architecture of client and provider and your application need to match, you cannot use the 64bit client with an x86 provider/application and vise versa

Usually the best is to have the newest version of both. But if you want to get rid of this issue once and for all use a third party oracle .NET provider.

UPDATE

One of the better ones is from DataDirect (no affiliation):
http://www.datadirect.com/products/net/net-for-oracle/index.html

It's not just installation (no oracle client necessary), but it's also faster, fully managed, x64 and general support is a way better than what you get with the ODP.NET one. It will cost you though.

The DevArt one is pretty decent as well (and much much cheaper):
http://www.devart.com/dotconnect/oracle/

We decided for the DataDirect for extensibility reasons, this should not be relevant to you however.

Here you can find a good compilation of third parties that build .NET providers, not limited to oracle though:
http://msdn.microsoft.com/en-us/data/dd363565

like image 64
ntziolis Avatar answered Dec 05 '22 17:12

ntziolis