2012-07-30 53 views
3

我甚至增加的app.config這個小片配置的:無法創建驅動程序從NHibernate.Driver.OracleDataClientDriver(與本地副本設置爲true)

<qualifyAssembly partialName="Oracle.DataAccess" 
      fullName="Oracle.DataAccess, 
          Version=2.112.2.0, 
          Culture=neutral, 
          PublicKeyToken=89b483f429c47342" /> 
    </assemblyBinding> 

...沒有成功。什麼可能是錯的? 同樣,只是要確保我的app.config是風水,那就是:

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
    <section name="hibernate-configuration" 
    type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/> 
    </configSections> 
    <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
    <session-factory> 
     <property name="show_sql">true</property> 
     <property name="dialect">NHibernate.Dialect.Oracle10gDialect</property> 
     <property name="connection.driver_class"> 
     NHibernate.Driver.OracleDataClientDriver 
     </property> 
     <property name="connection.connection_string_name"> 
     GuitarStore2 
     </property> 
     <property name="connection.provider"> 
     NHibernate.Connection.DriverConnectionProvider 
     </property> 
    </session-factory> 
    </hibernate-configuration> 
    <connectionStrings> 
    <add name="GuitarStore" 
    connectionString="****************"/> 
    <add name="GuitarStore2" 
    connectionString="****************"/> 
    </connectionStrings> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <qualifyAssembly partialName="Oracle.DataAccess" 
      fullName="Oracle.DataAccess, 
          Version=2.112.2.0, 
          Culture=neutral, 
          PublicKeyToken=89b483f429c47342" /> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

爲了記錄在案,我使用的是最新的NHibernate的(3.3.1),在.NET 3.5,Windows下7 64位。而且,在完全相同的項目中,我在另一臺機器上沒有遇到任何異常情況,但是在Windows XP中。

+0

嘗試使用MS的ADO.NET提供程序用於Oracle後,出現另一個有趣的錯誤:「嘗試加載Oracle客戶端庫時拋出BadImageFormatException。在安裝了32位Oracle客戶端組件的64位模式下運行時,會發生此問題。 「我有這樣的感覺,即Oracle提供商發生同樣的事情。 – 2012-07-30 19:53:02

回答

6

問題不在於NHibernate,而是因爲IL在生成64位代碼的同時使用了32位版本的ODP,因此只需將「Any CPU」選項更改爲「x86」,就可以擺脫的例外。

相關問題