«Не удалось найти запрошенный поставщик данных .Net Framework» после обновления до NHibernate 3.2. - PullRequest
4 голосов
/ 06 марта 2012

Я использую NHibernate 3.1, и я обновился до версии 3.2. Также я использую confOrm 1.0.1.5 и обновляюсь до версии 2.0.0.0v. Моя версия Firebird NET Provider - 2.7. Я делаю некоторые модификации моего кода, потому что confOrm больше не содержит ConfOrm.Mapper. Когда я пытаюсь сделать выбор, он возвращает следующую ошибку:

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 ]

2 голосов
/ 06 марта 2012

Я погуглил вашу ошибку и пришел к этой теме в социальной сети MSDN .Чтобы подвести итог решения (прокрутите вниз до решения Барретта), вполне вероятно, что что-то не так в ваших файлах 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>

Кстати, я гуглил на Невозможно найти запрошенный поставщик данных .Net Framework.Возможно, он не установлен. , что является наиболее интересной частью сообщаемой ошибки.Есть и более интересные находки, если вышеперечисленное не помогает.


Немного дальнейших исследований привело меня к этой записи в блоге , которая объясняет, почему это может быть проблемой вСитуация, когда у вас есть несколько провайдеров данных, и как ее решить.Примечание: этот вопрос StackOverflow связан, как и этот (решение также в machine.config).

0 голосов
/ 07 марта 2012

Авель, спасибо за ответ. Я стараюсь все возможное! Каждое возможное решение, я пытаюсь переустановить VS, Firebird, Net Framework 4, но ничего не работает, поэтому я отформатировал свой компьютер и отлично работает с новой версией nhibernate.

...