This thread looks to be a little on the old side and therefore may no longer be relevant. Please see if there is a newer thread on the subject and ensure you're using the most recent build of any software if your question regards a particular product.
This thread has been locked and is no longer accepting new posts, if you have a question regarding this topic please email us at support@mindscape.co.nz
|
Running latest nightly build of Lightspeed (Licenced) Oracle 11g 64 bit (Enterprise Edition) Oracle Client 32 and 64 bit installed: MVC3 Project Visual Studio 2010 Using transactionscope with Lightspeed causes the aforementioned error. Code snippet:
If I remove the using for transactionscope like so:
The code runs through fine, without errors. Any ideas? Thanks |
|
|
It seems that .Net is trying to load some assembly that is built to an especific plataform. Try to force your main application to run in 32bit mode using corflags.exe assembliname.dll /32BIT+ and repeat the test. If works, there is the problem. May only mindscape be able to fix it |
|
|
Can you post a full stack trace of the exception please - this looks like an issue where the Oracle ADO.NET provider is probably trying to load a 64 bit library rather than a 32 bit version/
|
|
|
Hi Jeremy, I've removed the 64 bit client and reinstalled 32 bit client. Same error occurs.... Exception Source: "System.Data.OracleClient" Here is the full stack trace as requested: at System.Data.OracleClient.OracleInternalConnection.Enlist(String userName, String password, String serverName, Transaction transaction, Boolean manualEnlistment)
at System.Data.OracleClient.OracleInternalConnection.Activate(Transaction transaction)
at System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction)
at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.OracleClient.OracleConnection.Open()
at ..getConnection()
at Mindscape.LightSpeed.ConnectionStrategy.GetConnection()
at Mindscape.LightSpeed.UnitOfWork.()
at Mindscape.LightSpeed.UnitOfWork.PrepareCommand(IDbCommand command)
at ...ctor(IUnitOfWork , IEnumerable |
|
|
I am assuming you are probably compiling for AnyCPU - can you try forcing x86 compilation and see if that solves the problem. The problem looks to be a mismatch between System.Data.OracleClient and the client libraries its looking to leverage.
|
|
|
Hi Jeremy, I tried that and no luck - same issue Thanks |
|
|
Are you able to send through a copy of your project and I will see if I can reproduce the issue here under a couple of configurations to try and work out what needs to be changed to line thing up the Oracle libraries correctly.
|
|
|
Hi Jeremy, Apologies for the late response. I've been running some background checks and have found that installing the 32Bit version of ORACLE ODAC Client and choosing 'Oracle for .NET' as the connector plus configuring the project as x86, the transactionscope error is eliminated. As you summised, it is a problem with 64 and 32Bit database connectors miss matching via Visual Studio 2010 and using Oracle11g 64Bit. In case anyone else runs into this problem, the setup I'm using that works is: Oracle11g 64Bit, ODAC Client 32Bit, VS 2010 building project as x86, Latest nightly build of Lightspeed. Thanks Doug |
|