Created a new question for the sake of simplicity:

Failed upgrade from Tridion 2011 SP1 to Tridion 2013 SP1

We had a SDL Tridion 2011 SP1 HR2 setup running with Oracle 11g R2 ( We followed the below upgrade path:

  1. Updated the DB Server to patchset as required by SDL Tridion 2013 SP1
  2. Upgraded all Tridion DBs to 2013 SP1 using the PowerShell scripts
  3. Installed Oracle 12c ( x64) client on the CMS box
  4. Upgraded the CMS sotware using the installer

After the upgrade we were getting some Oracle version mismatch errors (see below).

Could not load file or assembly 'Oracle.DataAccess, Version=, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. The system cannot find the file specified.

So we also installed the 32 bit client of Oracle 12c on the CMS box. Now we are getting the following errors in the Event Logs on the CMS

The type initializer for 'Oracle.DataAccess.Client.OracleConnectionStringBuilder' threw an exception. The provider is not compatible with the version of Oracle client

We have also installed 64 bit an 32 bit versions of ODAC on the CMS. Please advice on how to proceed.

Thank you.


The above upgrade was on the development environment and now we are doing the same on the test environment before we roll-out the upgrade on the production setup. We have encountered the same error and tried re-installing the Oracle client, but it didn't help. Please see the detailed error message that is showing up in the GUI.

Could not load file or assembly 'Oracle.DataAccess, Version=, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. The system cannot find the file specified.

The error detail shows:

>  at Tridion.AudienceManagement.DomainModel.Dal.OracleDataSession.OpenConnection(Boolean useTransaction)
>  at Tridion.AudienceManagement.DomainModel.Dal.OracleDataSession..ctor(UserContext userContext, Boolean openConnection, Boolean useTransaction)
>  at Tridion.AudienceManagement.DomainModel.Dal.DataSession.GetDataSession(UserContext userContext, Boolean openConnection, Boolean useTransaction)
>  at Tridion.AudienceManagement.DomainModel.Dal.Oracle.ExtendedDetailsDalOracle.ExtendedDetails()
>  at Tridion.AudienceManagement.DomainModel.ExtendedDetailCollection..ctor(UserContext userContext)
>  at Tridion.AudienceManagement.DomainModel.UserContext..ctor(String trusteeName)
>  at Tridion.AudienceManagement.UI.DataExtenders.TreeExtender.ProcessListSystemAdminResponse(XmlTextReader reader)
>  at Tridion.AudienceManagement.UI.DataExtenders.TreeExtender.ProcessResponse(XmlTextReader reader, PipelineContext context)
>  at Tridion.Web.UI.Core.Extensibility.Pipeline.<>c__DisplayClass4.<ProcessResponse>b__3(DataExtender extender)
>  at System.Collections.Generic.List`1.ForEach(Action`1 action)
>  at Tridion.Web.UI.Core.Extensibility.Pipeline.ProcessResponse(XmlTextReader reader, PipelineContext context)
>  at Tridion.Web.UI.Core.Extensibility.Pipeline.ProcessResponse(XmlTextReader input, Object[] methodParameterValues)
>  at Tridion.Web.UI.Models.CME.General.GetListSystemAdministration()
>  at SyncInvokeGetListSystemAdministration(Object , Object[] , Object[] )
>  at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
>  at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
>  at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
>  at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc)
>  at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)
>  at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)
>  at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc)
>  at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc)
>  at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
>  at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc)
>  at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

It appears as if some of the Audience Management components are looking for Oracle.DataAccess components for which we never installed. We have the Oracle 12c client installed on the CMS (which is listed as supported), so all SDL Tridion components should be referring to the same Oracle client version.

Please help.

2 Answers 2


I have seen problems like this before. Here's the thing: During installation of Oracle client, installer checks for .Net version installed on the box. It then installs corresponding components.

In your case, most probably you had .Net 3.5 at that time, so Oracle installer installed components for .Net 3.5. Later, Tridion installer updated your .Net version to .Net 4.5, but Oracle components remained for 3.5. After, you installed 32 bit Oracle client, so now you have components for .Net 4.5, but they are 32bit. To fix the issue you need to reinstall 64bit Oracle client.

  • 1
    thanks @user978511. Reinstalling 64bit Oracle client did the trick. Commented May 6, 2014 at 14:51

I can confirm that the solution from @hzahid worked for us as well.

Our situation:

Tridion 2013 SP1 on Windows Server 2012 R2 with Oracle 12c (database on a separate machine) and legacy pack

Order of installing Oracle clients:

  1. Installed Oracle client 64-bit
  2. Installed Oracle client 32-bit
  3. Uninstalled Oracle client 64-bit
  4. Installed Oracle client 64-bit again (in a different directory since the previous one wasn't removed completely by deinstall.bat).

This finally made Tridion work. The errors we were getting before were exactly the same as described here in the first post after steps 1 and 2.


Installing Tridion on another environment went without any issues and the only difference was in Oracle base path.

On the first environment Oracle base was the same for both 64-bit and 32-bit clients. This caused problems and we had to reinstall the 64-bit client.

On the second environment we tried installing clients with different Oracle base paths. No errors occurred and everything was fine.

I do not know if that was the cause. Hopefully somebody can shed some light onto this.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.