ODP services can't recognize DbProviderFactory

Nov 27, 2007 at 1:35 PM
When I use Service.Odp library with Oracle.DataAccess.Client for workflow persistence Initialize method of class DefaultAdoResourceProvider throws exception from method DbProviderFactories.GetFactory("Oracle.DataAccess.Client"), because defined factories doesn't contains Oracle.DataAccess.Client.OracleClientFactory.

So. At class OdpResourceProvider I've overrided property DbProviderFactory to:

 
Coordinator
Nov 28, 2007 at 6:51 PM
Hi Edy,

This should work without changing any code. Every ADO.NET provider should register an entry in the machine.config file (located in %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\CONFIG).

Any chance you can post the <system.data> section of your machine.config file and the exact version of ODP.NET you're using? This sounds like ODP.NET might not have installed properly (I've seen the problem before when upgrading). I have the following details in my machine.config file and am running ODP.NET 10.2.2.20.

<system.data>
<DbProviderFactories>
...
some other entries here
...
<add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=2.102.2.20, Culture=neutral, PublicKeyToken=89b483f429c47342" />
...
some other entries here
...
</DbProviderFactories>
</system.data>

Cheers,

Dean