Hi Ying Guo, Actually you've to check in the folder "C:\Windows\Microsoft.NET \assembly", both in GAC_32 & GAC_34 folders. If you cannot find oracledataaccess.dll (or oracleclient.dll for old .net provider) in 2.x or in 4 folders, you need to install providers. In my app, I use Oracle 11g, then I've installed ODP.NET with ODAC 11g Release2.
Like in my previous mail, my testing environment is based on Win2008 R2. I compile solution in "AnyCpu". This is my NH configuration file: <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" > <session-factory name="NHibernate.Test"> <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</ property> <property name="dialect">NHibernate.Dialect.Oracle10gDialect</ property> <property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</ property> <property name="connection.connection_string">Data Source=ORACLE_INSTANCE;User ID=USER;Password=PASSWORD; Connection Lifetime=180;</property> <property name="show_sql">true</property> <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode.Castle</ property> <mapping assembly="MyAssembly" /> </session-factory> </hibernate-configuration> HTH On 24 Feb, 01:08, Ying Guo <hen...@gmail.com> wrote: > Thanks for the reply, Turibbio. > I understand this is a platform related issue. However still having trouble > to find a solution. > > I've check the C:\windows\Assembly for 2008 R2 > The two oracle entry in there are > Oracle.dataaccess AMD64 > oracle.web AMD64 > I dont see another location > > for the 2003 server GAC > Oracle.DataAccess x86 > Oracle.Web x86. > > I guess I could try to have x86 oracle driver intalled on this box instead?? > I guess I could also try to convert into using ODP.NET <http://odp.net/> > driver. > > So what platform your application running under? anyCpu x64 or x86 ? > and also could you send me ur hibernate configuration? > > thanks > > Ying Guo > > > > On Wed, Feb 23, 2011 at 4:09 PM, turibbio <turib...@gmail.com> wrote: > > Hi Ying Guo, I've faced the same problem few days ago. > > First of all, I've to clearify one thing, it is not an NHibernate > > related problem! > > Here is what worked for me: if you don't know, Win Server 2008 R2 has > > 2 different folder for GAC (GAC_32 & GAC_64). You have to check if, in > > the right folder based on what target platform you've chosen compiling > > your software, there's an Oracle.DataAccess.dll (or > > OracleDataClient.dll if you use old .Net provider). The > > BadImageFormatException it's an exception that come up when .net > > engine will find a mismatch between target platform. > > > Anyway, you can also set to false the IIS setting about 32 bit. If > > your app is compilied in 32 bit, it will looking for in GAC32 for > > Oracle Driver. > > In my app I've used Oracle.DataAccess.dll and I have installed > > ODP.NET<http://odp.net/> > > with ODAC (11g R2) on our service tier (where NHibernate apps are > > hosted). Besides, SQLPlus, if tnsnames is correctly configured, will > > always log you in, 'cause it doens't use .net oracle provider, but > > oracle native provider. > > > HTH, anyway I'm here :) > > > On 23 Feb, 21:25, Ying Guo <hen...@gmail.com> wrote: > > > When I trying to migrate into 2008 64bit I am getting the following > > > exception > > > > System.Reflection.TargetInvocationException: Exception has been thrown by > > > the target of an invocation. ---> System.InvalidOperationException: > > Attempt > > > to load Oracle client libraries threw BadImageFormatException. This > > problem > > > will occur when running in 64 bit mode with the 32 bit Oracle client > > > components installed. ---> System.BadImageFormatException: An attempt was > > > made to load a program with an incorrect format. (Exception from HRESULT: > > > 0x8007000B) > > > at System.Data.Common.UnsafeNativeMethods.OCILobCopy2(IntPtr svchp > > > IntPtr errhp, IntPtr dst_locp, IntPtr src_locp, UInt64 amount, UInt64 > > > dst_offset, UInt64 src_offset) > > > at System.Data.OracleClient.OCI.DetermineClientVersion() > > > --- End of inner exception stack trace --- > > > at System.Data.OracleClient.OCI.DetermineClientVersion() > > > at > > > System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(String > > > userName, String password, String serverName, Boolean integratedSecurity, > > > Boolean unicode, Boolean omitOracleConnectionName) > > > at > > > System.Data.OracleClient.OracleInternalConnection..ctor(OracleConnectionString > > > connectionOptions) > > > at > > > System.Data.OracleClient.OracleConnectionFactory.CreateConnection(DbConnectionOptions > > > options, Object poolGroupProviderInfo, DbConnectionPool pool, > > DbConnection > > > owningObject) > > > at > > > System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection > > > owningConnection, DbConnectionPool pool, DbConnectionOptions options) > > > at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection > > > owningObject) > > > at > > > System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection > > > owningObject) > > > 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() > > > > This is running an web service application in IIS. > > > a) I have the IIS application pool running as 32 enable. > > > b) Orcale client was installed as 64 bit and SQLPlus connect testing okay > > > from console. > > > c) same configurations project works fine for 2003 server or local x86 > > 32bit > > > box. (same database) > > > d) try to build the project to target x86 does not help. > > > > Any help will be appreciated. > > > The thing confuse me is that, I have app_pool run with 32bit enable and > > > Oracle driver installed with 64 bit. it seems to complain the reverse way > > > think 64 client calling 32 driver. > > > > -------------- configuration XML ------------------ > > > > <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> > > > > <reflection-optimizer use="true" /> > > > > <session-factory> > > > > <property name="connection.provider"> > > > NHibernate.Connection.DriverConnectionProvider</property> > > > > <property name="dialect">NHibernate.Dialect.Oracle9iDialect</property> > > > > <property name="connection.driver_class"> > > > NHibernate.Driver.OracleClientDriver</property> > > > > <property name="connection.connection_string">Data Source=dcap;User > > > Id=CAPTURE_USER; Password=captureuser1</property> > > > > <property name="proxyfactory.factory_class"> > > > > NHibernate.ByteCode.LinFu.ProxyFactoryFactory, > > > > NHibernate.ByteCode.LinFu > > > > </property> > > > > <property name="show_sql">true</property> > > > > <mapping assembly="captureDBCore"/> > > > > </session-factory> > > > > </hibernate-configuration> > > > -- > > You received this message because you are subscribed to the Google Groups > > "nhusers" group. > > To post to this group, send email to nhusers@googlegroups.com. > > To unsubscribe from this group, send email to > > nhusers+unsubscr...@googlegroups.com. > > For more options, visit this group at > >http://groups.google.com/group/nhusers?hl=en.- Nascondi testo citato > > - Mostra testo citato - -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to nhusers@googlegroups.com. To unsubscribe from this group, send email to nhusers+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.