2012-03-05 10 views
4

私はNHibernate 3.1を使用し、バージョン3.2に更新しました。また、confOrm 1.0.1.5を使用し、2.0.0.0vVersionに更新します。 Firebird NET Providerの私のバージョンは2.7です。 confOrmにはもうConfOrm.Mapperが含まれていないので、私は自分のコードをいくつか変更します。選択をしようとすると、次のエラーが返されます。NHibernate 3.2へのアップデート後、 "要求された.Net Framework Data Provider"を見つけることができません

NHibernate.HibernateException : Could not create the driver from NHibernate.Driver.FirebirdClientDriver, NHibernate, Version=3.2.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4. 
    ----> System.Reflection.TargetInvocationException : Exception has been thrown by the target of an invocation. 
    ----> System.ArgumentException : Unable to find the requested .Net Framework Data Provider. It may not be installed. 
at NHibernate.Connection.ConnectionProvider.ConfigureDriver(IDictionary`2 settings) 
at NHibernate.Connection.ConnectionProviderFactory.NewConnectionProvider(IDictionary`2 settings) 
at NHibernate.Cfg.SettingsFactory.BuildSettings(IDictionary`2 properties) 
at NHibernate.Cfg.Configuration.BuildSettings() 
at NHibernate.Cfg.Configuration.BuildSessionFactory() 
at SoftManager.Dao.Util.SessionManager.get_factory() in SessionManager.cs: line 15 
at SoftManager.Dao.Util.SessionManager.getSession() in SessionManager.cs: line 23 
at SoftManager.Dao.GenericDao`1.findUniqueByWhere(Restricao rest, Order order) in GenericDao.cs: line 144 
at SoftManager.Dao.CidadeDao.findUniqueByWhere(Restricao rest, Order order) in CidadeDao.cs: line 52 
at SoftManager.Teste.TesteConsulta.consultaCidade2() in TesteConsulta.cs: line 52 
at SoftManager.Teste.TesteConsulta.testes() in TesteConsulta.cs: line 17 
--TargetInvocationException 
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, ref Boolean canBeCached, ref RuntimeMethodHandleInternal ctor, ref Boolean bNeedSecurityCheck) 
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache) 
at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache) 
at System.Activator.CreateInstance(Type type, Boolean nonPublic) 
at NHibernate.Bytecode.ActivatorObjectsFactory.CreateInstance(Type type) 
at NHibernate.Connection.ConnectionProvider.ConfigureDriver(IDictionary`2 settings) 
--ArgumentException 
at NHibernate.Driver.ReflectionBasedDriver..ctor(String providerInvariantName, String driverAssemblyName, String connectionTypeName, String commandTypeName) 
at NHibernate.Driver.FirebirdClientDriver..ctor() 

ありがとう、ありがとう!

答えて

2

私はあなたのエラーをgoogledとthis thread on Social MSDNに来た。ソリューションを要約すると(Barrettのソリューションではスクロールダウン)、machine.configファイルに何か問題がある可能性があります。このユーザーはそうなど、彼のmachine.configに余分な終了タグを報告:

<!-- notice the double closing tag --> 
<system.data> 
    <DbProviderFactories> 
     <add name="Odbc Data Provider" invariant="System.Data.Odbc" ... /> 
     <add name="OleDb Data Provider" invariant="System.Data.OleDb" ... /> 
     <add name="OracleClient Data Provider" invariant="System.Data ... /> 
     <add name="SqlClient Data Provider" invariant="System.Data ... /> 
     <add name="IBM DB2 for i .NET Provider" invariant="IBM.Data ... /> 
     <add name="Microsoft SQL Server Compact Data Provider" ... /></DbProviderFactories> 
    <DbProviderFactories/> 
</system.data> 

ところで、私が報告されたエラーのより興味深い部分であるUnable to find the requested .Net Framework Data Provider. It may not be installed.、ためにGoogleで検索しました。上記が役に立たない場合、より興味深い発見があります。


少し更なる研究は、これはあなたが複数のDataProviderを持っている状況で問題があり、どのようにそれを解決することができる理由を説明している、this blog postに私をもたらしました。注:このStackOverflow questionは、this oneと同様に関連しています(machine.configのソリューションもあります)。

0

アベル、お返事ありがとうございます。私は可能な限りすべてを試みます!すべての可能な解決策、私はVS、Firebird、Net Framework 4を再インストールしようとするが、何も動作しないので、私は自分のPCをフォーマットし、nhibernateの新しいバージョンでうまく動作する。

関連する問題