“ODP.NET,托管驱动程序"System.Data.Common.DbProviderFactories.GetFactory 失败.但是“原始"作品 [英] "ODP.NET, Managed Driver" is failing with System.Data.Common.DbProviderFactories.GetFactory. But "raw" works

查看:92
本文介绍了“ODP.NET,托管驱动程序"System.Data.Common.DbProviderFactories.GetFactory 失败.但是“原始"作品的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嘎嘎.Oracle 和 DotNet 框架代码.

我正在尝试在工厂创建一个ODP.NET,托管驱动程序"

我要了

无法找到请求的 .Net Framework 数据提供程序.可能未安装.

我已经走到了极端之下以确保它在那里".

原始"vs 使用工厂调试提示来自这里:

App.config

<配置><configSections></configSections><应用设置></appSettings><连接字符串><add name="MyConnectionString";connectionString=Data Source=localhost:1521/XE;Persist Security Info=True;User ID=MyOracleSchemaOne;Password=mypassword;";providerName=Oracle.ManagedDataAccess.Client"/></connectionStrings><系统数据><DbProviderFactories><remove invariant="Oracle.ManagedDataAccess.Client"/><添加名称=ODP.NET,托管驱动程序"invariant="Oracle.ManagedDataAccess.Client";description="Oracle Data Provider for .NET, Managed Driver";type=Oracle.ManagedDataAccess.Client.OracleClientFactory,Oracle.ManagedDataAccess,版本=4.122.19.1,Culture=neutral,PublicKeyToken=89b483f429c47342"/></DbProviderFactories></system.data><运行时><assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"><依赖程序集><publisherPolicy apply="no";/><assemblyIdentity name="Oracle.ManagedDataAccess";publicKeyToken="89b483f429c47342";文化=中性"/><bindingRedirect oldVersion=4.121.0.0 - 4.65535.65535.65535"newVersion=4.122.19.1";/></dependentAssembly></assemblyBinding></运行时><oracle.manageddataaccess.client><版本号=*"><数据源><dataSource alias="SampleDataSource";描述符="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL))) "/></数据源></版本></oracle.manageddataaccess.client></配置>

packages.config

错误

无法找到请求的 .Net Framework 数据提供程序.可能未安装.

然而,它是in"的数据表/数据集/Xml

xml =(注意,最后一个条目,并且在那里有密切关系)

<DbProviderFactories><名称>Odbc 数据提供程序</名称><Description>.Net Framework Data Provider for Odbc</Description><InvariantName>System.Data.Odbc</InvariantName><AssemblyQualifiedName>System.Data.Odbc.OdbcFactory, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyQualifiedName></DbProviderFactories><DbProviderFactories><名称>OleDb 数据提供者</名称><Description>.Net Framework Data Provider for OleDb</Description><InvariantName>System.Data.OleDb</InvariantName><AssemblyQualifiedName>System.Data.OleDb.OleDbFactory, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyQualifiedName></DbProviderFactories><DbProviderFactories><名称>OracleClient 数据提供程序</名称><Description>.Net Framework Data Provider for Oracle</Description><InvariantName>System.Data.OracleClient</InvariantName><AssemblyQualifiedName>System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyQualifiedName></DbProviderFactories><DbProviderFactories><名称>SqlClient 数据提供程序</名称><Description>.Net Framework Data Provider for SqlServer</Description><InvariantName>System.Data.SqlClient</InvariantName><AssemblyQualifiedName>System.Data.SqlClient.SqlClientFactory, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyQualifiedName></DbProviderFactories><DbProviderFactories><名称>MySQL 数据提供程序</名称><Description>.Net Framework Data Provider for MySQL</Description><InvariantName>MySql.Data.MySqlClient</InvariantName><AssemblyQualifiedName>MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=8.0.19.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d</AssemblyQualifiedName></DbProviderFactories><DbProviderFactories><名称>ODP.NET,托管驱动程序</名称><Description>Oracle Data Provider for .NET, Managed Driver</Description><InvariantName>Oracle.ManagedDataAccess.Client</InvariantName><AssemblyQualifiedName>Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342</AssemblyQualifiedName></DbProviderFactories></新数据集>

注意,我也试过:

 <!---- <remove invariant="Oracle.ManagedDataAccess.Client"/>--></清除>

注意,我看到的一件奇怪的事情是/clear"....我仍然把它当作 xml

<DbProviderFactories><名称>Odbc 数据提供程序</名称><Description>.Net Framework Data Provider for Odbc</Description><InvariantName>System.Data.Odbc</InvariantName><AssemblyQualifiedName>System.Data.Odbc.OdbcFactory, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyQualifiedName></DbProviderFactories><DbProviderFactories><名称>OleDb 数据提供者</名称><Description>.Net Framework Data Provider for OleDb</Description><InvariantName>System.Data.OleDb</InvariantName><AssemblyQualifiedName>System.Data.OleDb.OleDbFactory, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyQualifiedName></DbProviderFactories><DbProviderFactories><名称>OracleClient 数据提供程序</名称><Description>.Net Framework Data Provider for Oracle</Description><InvariantName>System.Data.OracleClient</InvariantName><AssemblyQualifiedName>System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyQualifiedName></DbProviderFactories><DbProviderFactories><名称>SqlClient 数据提供程序</名称><Description>.Net Framework Data Provider for SqlServer</Description><InvariantName>System.Data.SqlClient</InvariantName><AssemblyQualifiedName>System.Data.SqlClient.SqlClientFactory, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyQualifiedName></DbProviderFactories><DbProviderFactories><名称>ODP.NET,托管驱动程序</名称><Description>Oracle Data Provider for .NET, Managed Driver</Description><InvariantName>Oracle.ManagedDataAccess.Client</InvariantName><AssemblyQualifiedName>Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342</AssemblyQualifiedName></DbProviderFactories></新数据集>

更新:

我运行了 VS2019以管理员身份",但同样的错误.

我的machine.config (C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config )

(里面没有任何预言机)

 <DbProviderFactories><添加名称=MySQL 数据提供程序"invariant="MySql.Data.MySqlClient";description=用于 MySQL 的 .Net Framework 数据提供程序";type=MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data,版本=8.0.19.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d"/></DbProviderFactories></system.data>

关于钓鱼conn"的输出.

原始父程序集:Oracle.ManagedDataAccess,版本=4.122.19.1,Culture=neutral,PublicKeyToken=89b483f429c47342subAssembly.FullName:mscorlib,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089subAssembly.FullName : System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Data.SqlXml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName:mscorlib,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName : System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName:mscorlib,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089subAssembly.FullName : System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName : System.Runtime.Caching, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName : System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName:mscorlib,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35subAssembly.FullName : System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName : System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName:mscorlib,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089subAssembly.FullName : System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName:mscorlib,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName : System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName : System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName:mscorlib,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089subAssembly.FullName : System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName : System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName:mscorlib,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089subAssembly.FullName : System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName:mscorlib,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName : System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName:mscorlib,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName:mscorlib,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089subAssembly.FullName : System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

更新(2)

(上面的新 cs 代码...这里有 2 个感兴趣的条目)::

1 rawConnectionAssembly :: Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c473421 .9 AppDomain.CurrentDomain.GetAssemblies :: Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342

整个输出:

1 rawConnectionAssembly :: Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c473421 .9 AppDomain.CurrentDomain.GetAssemblies :: Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c473421 rawConnectionAssembly :: Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342subAssembly.FullName : System.Data.SqlXml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Runtime.Caching, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName : System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKey5f7b0asubAssembly.FullName : System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0891 .1 AppDomain.CurrentDomain.GetAssemblies :: mscorlib,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e0891 .2 AppDomain.CurrentDomain.GetAssemblies :: MyCompany.ConsoleOne, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullsubAssembly.FullName : System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken5b619a5csubAssembly.FullName:System.Runtime.Caching,版本=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName:System.EnterpriseServices,版本=4.0.0.0,Culture=neutral,PublicKey5dCorea0.0.0.0.0.0.0.0.0.0.0.0.0.0版本=7.0.0.0,文化=中性,PublicKeyToken=9fc386479f8a226csubAssembly.FullName : RabbitMQ.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=89e7d7c5feba84cesubAssembly.FullName : System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7dd151ffcd2subAssembly.FullName : System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.DirectoryServices.Protocols, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullNamesubAssembly.FullName : System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName : System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName:MyCompany.MyProj1.NHibernateEntities,Version=1.0.0.0,Culture=neutral,PublicKeyToken=nullsubAssembly.FullName:NHibernate,Version=5.1.0.0,Culture=neutral,PublicKeyToken=aa95f24System.subAssembly.FullName4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName : Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53bsubAssembly.FullName : Remotion.Linq.EagerFetching, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53bsubAssembly.FullName:System.ServiceModel,版本=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089subAssembly.FullName:System.Xml.Linq,Version=4.0.0.0,Culture=neutral,PublicKey5TokensName560.0.0.0.0.0.0.0.0.0.0.0.0.0.0.3版本=7.0.0.0,文化=中性,PublicKeyToken=9fc386479f8a226csubAssembly.FullName : NHibernate, Version=5.2.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4subAssembly.FullName : System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7a3a11 .3 AppDomain.CurrentDomain.GetAssemblies :: NServiceBus.Core, Version=7.0.0.0, Culture=neutral, PublicKeyToken=9fc386479f8a226csubAssembly.FullName : System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName:System.Data.SqlXml,版本=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089subAssembly.FullName:System.ServiceModel.Internals,Version=4.0.0.0,Culture=neutral,PublicKey3535e33335355353535asubAssembly.FullName : SMDiagnostics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0891 .4 AppDomain.CurrentDomain.GetAssemblies :: System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Data.SqlXml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName1 .5 AppDomain.CurrentDomain.GetAssemblies :: CrowdStrike.Sensor.ScriptControl, Version=5.32.11406.0, Culture=neutral, PublicKeyToken=null1 .61 .7 AppDomain.CurrentDomain.GetAssemblies :: System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName : System.Data.SqlXml, Version=4.0.0.0, CultureKey=neutral, CultureKey=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName1 .8 AppDomain.CurrentDomain.GetAssemblies :: System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0891 .9 AppDomain.CurrentDomain.GetAssemblies :: Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342subAssembly.FullName : System.Data.SqlXml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Runtime.Caching, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName : System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKey5f7b0asubAssembly.FullName : System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0891 .10 AppDomain.CurrentDomain.GetAssemblies :: System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Data.SqlXml, Version=4.0.0.0, Version=4.0.0.0, Version=4.0.0.0, PublicKey CultureToken=neutral,PublicKeyToken=b77a5c561934e089subAssembly.FullName全名:System.EnterpriseServices,版本=4.0.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName : System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0891 .11 AppDomain.CurrentDomain.GetAssemblies :: System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Data.SqlXml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0891 .12 AppDomain.CurrentDomain.GetAssemblies :: MyCompany.MyProj1.NHibernateMappings,版本=1.0.0.0,Culture=neutral,PublicKeyToken=nullsubAssembly.FullName:NHibernate,版本=5.1.0.0,Culture=neutral,PublicKeyName20daa7llAssembly:System.Data,版本=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089subAssembly.FullName:System.Data,版本=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089sub.Cll0.FullName.FullName.FullName.FullName.文化=中性,PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName : Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53bsubAssembly.FullName : Remotion.Linq.EagerFetching, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53bsubAssembly.FullName:System.ServiceModel,版本=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089subAssembly.FullName:System.Xml.Linq,Version=4.0.0.0,Culture=neutral,PublicKey54Token=60e9a1 .13 AppDomain.CurrentDomain.GetAssemblies :: NHibernate, Version=5.2.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4subAssembly.FullName : SMDiagnostics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKey5f0a33subAssembly.FullName : Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53bsubAssembly.FullName : System.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

(我的问题不是太大,我无法更新所有内容:()

解决方案

当使用代码跟随时,将显示您拥有的所有提供者

 静态数据表 GetProviderFactoryClasses(){//检索已安装的提供程序和工厂.数据表表 = DbProviderFactories.GetFactoryClasses();//显示每一行和每一列的值.foreach(table.Rows 中的 DataRow 行){foreach(table.Columns 中的 DataColumn 列){Console.Write(行[列]);Console.Write("\t");}Console.WriteLine(";");}返回表;}

<块引用>

错误正是提供程序名称是Oracle.ManagedDataAccess.Client";但是ODP.NET,托管驱动程序";我的错误是DbContext的构造connectionstr是错误的,它应该像ConfigurationManager.ConnectionStrings[OperateLogOracle"].ConnectionString ??"name=OperateLogOracle""

Gaaaa. Oracle and DotNet Framework code.

I am trying to factory-create a "ODP.NET, Managed Driver"

I am getting

Unable to find the requested .Net Framework Data Provider. It may not be installed.

And I have went to the below extreme to make sure it is "in there".

The "raw" vs using the factory debugging tip came from here : ODP.NET Managed - Unable to find requested .Net Framework Data Provider

Program.cs and "Main"

    private static void MyIssue()
    {
            string oracleConnectionString = GetConnectionStringByName("MyConnectionString");
            using (var conn = new Oracle.ManagedDataAccess.Client.OracleConnection(oracleConnectionString))
            {
                /* lets "prove" the connection string works in a raw fashion */
                conn.Open();
                conn.Close();

                /* THIS (above 2 lines) WORKS */

                System.Reflection.Assembly rawConnectionAssembly = conn.GetType().Assembly;
                ShowAssemblyInfo(rawConnectionAssembly, 1, "rawConnectionAssembly");
            }

            ShowAssemblyInfo(AppDomain.CurrentDomain.GetAssemblies().ToList(), 1, "AppDomain.CurrentDomain.GetAssemblies");




            /* this is debugging for the DbProviderFactories */
            System.Data.DataTable dbfacs = System.Data.Common.DbProviderFactories.GetFactoryClasses();
            System.Data.DataSet ds1 = new DataSet();
            ds1.Tables.Add(dbfacs);
            string xml = ds1.GetXml();

            try
            {
                string magicFactoryName = "ODP.NET, Managed Driver";
                if (!xml.Contains(magicFactoryName))
                {
                    throw new ArithmeticException(string.Format("Missing Factory Name in GetFactoryClasses. {0}", magicFactoryName));
                }

                /* really weird, I see the item in the xml (line above), but it won't created this Factory by that name */ /* THIS FAILS */
                var factory = System.Data.Common.DbProviderFactories.GetFactory(magicFactoryName);
                if (null != factory)
                {
                    var conn2 = factory.CreateConnection();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Intentional SWALLOW : " + GenerateFullFlatMessage(ex));
            }
    }


    private static void ShowAssemblyInfo(ICollection<Assembly> asblies, int nestLevel, string prefixMsg)
    {
        if (null != asblies)
        {
            int counter = 0;
            foreach (Assembly currentAssembly in asblies)
            {
                ShowAssemblyInfo(currentAssembly, nestLevel, "." + Convert.ToString(++counter) + " " + prefixMsg);
            }
        }
    }

    private static void ShowAssemblyInfo(Assembly asbly, int nestLevel, string prefixMsg)
    {
        string prefix = new String(' ', nestLevel);

        if (null != asbly)
        {
            Console.WriteLine("{0}{1} {2} :: {3}", prefix , nestLevel, prefixMsg, asbly.FullName);

            foreach (System.Reflection.AssemblyName assemblyName in asbly.GetReferencedAssemblies())
            {
                System.Reflection.Assembly currentLoopAssembly = System.Reflection.Assembly.Load(assemblyName);
                foreach (System.Reflection.AssemblyName subAssembly in currentLoopAssembly.GetReferencedAssemblies())
                {
                    Console.WriteLine("subAssembly.FullName : {0}", subAssembly.FullName);
                }

                // overflow?
                //ShowAssemblyInfo(currentLoopAssembly, nestLevel++);
            }
        }
    }

    private static string GenerateFullFlatMessage(Exception ex)
    {
        return GenerateFullFlatMessage(ex, false);
    }

    private static string GenerateFullFlatMessage(Exception ex, bool showStackTrace)
    {
        string returnValue;

        StringBuilder sb = new StringBuilder();
        Exception nestedEx = ex;

        while (nestedEx != null)
        {
            if (!string.IsNullOrEmpty(nestedEx.Message))
            {
                sb.Append(nestedEx.Message + System.Environment.NewLine);
            }

            if (showStackTrace && !string.IsNullOrEmpty(nestedEx.StackTrace))
            {
                sb.Append(nestedEx.StackTrace + System.Environment.NewLine);
            }

            if (ex is AggregateException)
            {
                AggregateException ae = ex as AggregateException;

                foreach (Exception flatEx in ae.Flatten().InnerExceptions)
                {
                    if (!string.IsNullOrEmpty(flatEx.Message))
                    {
                        sb.Append(flatEx.Message + System.Environment.NewLine);
                    }

                    if (showStackTrace && !string.IsNullOrEmpty(flatEx.StackTrace))
                    {
                        sb.Append(flatEx.StackTrace + System.Environment.NewLine);
                    }
                }
            }

            nestedEx = nestedEx.InnerException;
        }

        returnValue = sb.ToString();

        return returnValue;
    }

Note, I am not getting a "ArithmeticException" (faux) exception...so I know its not f@t-finger syntax error mistake.

App.config

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<configuration>
  <configSections>
  </configSections>

  <appSettings>

  </appSettings>

  <connectionStrings>

    <add name="MyConnectionString"
        connectionString="Data Source=localhost:1521/XE;Persist Security Info=True;User ID=MyOracleSchemaOne;Password=mypassword;"
        providerName="Oracle.ManagedDataAccess.Client"/>


  </connectionStrings>
  <system.data>
    <DbProviderFactories>
      <remove invariant="Oracle.ManagedDataAccess.Client"/>

      <add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342" />

    </DbProviderFactories>
  </system.data>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <publisherPolicy apply="no" />
        <assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
        <bindingRedirect oldVersion="4.121.0.0 - 4.65535.65535.65535" newVersion="4.122.19.1" />
      </dependentAssembly>


    </assemblyBinding>
  </runtime>
  <oracle.manageddataaccess.client>
    <version number="*">
      <dataSources>
        <dataSource alias="SampleDataSource"
            descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL))) "/>
      </dataSources>
    </version>
  </oracle.manageddataaccess.client>
</configuration>

packages.config

The error

Unable to find the requested .Net Framework Data Provider. It may not be installed.

However, it is "in" the DataTable/DataSet/Xml

xml = (note, the last entry, and germane one is there)

<NewDataSet>
  <DbProviderFactories>
    <Name>Odbc Data Provider</Name>
    <Description>.Net Framework Data Provider for Odbc</Description>
    <InvariantName>System.Data.Odbc</InvariantName>
    <AssemblyQualifiedName>System.Data.Odbc.OdbcFactory, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyQualifiedName>
  </DbProviderFactories>
  <DbProviderFactories>
    <Name>OleDb Data Provider</Name>
    <Description>.Net Framework Data Provider for OleDb</Description>
    <InvariantName>System.Data.OleDb</InvariantName>
    <AssemblyQualifiedName>System.Data.OleDb.OleDbFactory, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyQualifiedName>
  </DbProviderFactories>
  <DbProviderFactories>
    <Name>OracleClient Data Provider</Name>
    <Description>.Net Framework Data Provider for Oracle</Description>
    <InvariantName>System.Data.OracleClient</InvariantName>
    <AssemblyQualifiedName>System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyQualifiedName>
  </DbProviderFactories>
  <DbProviderFactories>
    <Name>SqlClient Data Provider</Name>
    <Description>.Net Framework Data Provider for SqlServer</Description>
    <InvariantName>System.Data.SqlClient</InvariantName>
    <AssemblyQualifiedName>System.Data.SqlClient.SqlClientFactory, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyQualifiedName>
  </DbProviderFactories>
  <DbProviderFactories>
    <Name>MySQL Data Provider</Name>
    <Description>.Net Framework Data Provider for MySQL</Description>
    <InvariantName>MySql.Data.MySqlClient</InvariantName>
    <AssemblyQualifiedName>MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=8.0.19.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d</AssemblyQualifiedName>
  </DbProviderFactories>
  <DbProviderFactories>
    <Name>ODP.NET, Managed Driver</Name>
    <Description>Oracle Data Provider for .NET, Managed Driver</Description>
    <InvariantName>Oracle.ManagedDataAccess.Client</InvariantName>
    <AssemblyQualifiedName>Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342</AssemblyQualifiedName>
  </DbProviderFactories>
</NewDataSet>

Note, I've also tried a:

    <DbProviderFactories>
          <!----          <remove invariant="Oracle.ManagedDataAccess.Client"/>  -->
      </clear>

Note, one weird thing I saw was that with "/clear"....I still get this as the xml

<NewDataSet>
  <DbProviderFactories>
    <Name>Odbc Data Provider</Name>
    <Description>.Net Framework Data Provider for Odbc</Description>
    <InvariantName>System.Data.Odbc</InvariantName>
    <AssemblyQualifiedName>System.Data.Odbc.OdbcFactory, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyQualifiedName>
  </DbProviderFactories>
  <DbProviderFactories>
    <Name>OleDb Data Provider</Name>
    <Description>.Net Framework Data Provider for OleDb</Description>
    <InvariantName>System.Data.OleDb</InvariantName>
    <AssemblyQualifiedName>System.Data.OleDb.OleDbFactory, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyQualifiedName>
  </DbProviderFactories>
  <DbProviderFactories>
    <Name>OracleClient Data Provider</Name>
    <Description>.Net Framework Data Provider for Oracle</Description>
    <InvariantName>System.Data.OracleClient</InvariantName>
    <AssemblyQualifiedName>System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyQualifiedName>
  </DbProviderFactories>
  <DbProviderFactories>
    <Name>SqlClient Data Provider</Name>
    <Description>.Net Framework Data Provider for SqlServer</Description>
    <InvariantName>System.Data.SqlClient</InvariantName>
    <AssemblyQualifiedName>System.Data.SqlClient.SqlClientFactory, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyQualifiedName>
  </DbProviderFactories>
  <DbProviderFactories>
    <Name>ODP.NET, Managed Driver</Name>
    <Description>Oracle Data Provider for .NET, Managed Driver</Description>
    <InvariantName>Oracle.ManagedDataAccess.Client</InvariantName>
    <AssemblyQualifiedName>Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342</AssemblyQualifiedName>
  </DbProviderFactories>
</NewDataSet>

UPDATES:

I ran VS2019 "As Administrator", but same error.

My machine.config (C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config )

(nothing oracle in there)

  <system.data>
    <DbProviderFactories>
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=8.0.19.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
    </DbProviderFactories>
  </system.data>

The output in regards to fishing the "conn".

Raw Parent Assembly : Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342


subAssembly.FullName : mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Data.SqlXml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
subAssembly.FullName : mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
subAssembly.FullName : System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
subAssembly.FullName : System.Runtime.Caching, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
subAssembly.FullName : System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
subAssembly.FullName : mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
subAssembly.FullName : System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
subAssembly.FullName : System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
subAssembly.FullName : mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
subAssembly.FullName : System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
subAssembly.FullName : System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
subAssembly.FullName : System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
subAssembly.FullName : mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
subAssembly.FullName : System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

UPDATE (2)

(new cs code above...here are the 2 entries of interest)::

1 rawConnectionAssembly ::                    Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342

1 .9 AppDomain.CurrentDomain.GetAssemblies :: Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342 

the entire output:

1 rawConnectionAssembly ::                    Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342
1 .9 AppDomain.CurrentDomain.GetAssemblies :: Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342 
 
 1 rawConnectionAssembly :: Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342
subAssembly.FullName : System.Data.SqlXml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Runtime.Caching, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName : System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
subAssembly.FullName : System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

 1 .1 AppDomain.CurrentDomain.GetAssemblies :: mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089


 1 .2 AppDomain.CurrentDomain.GetAssemblies :: MyCompany.ConsoleOne, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullsubAssembly.FullName : System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Runtime.Caching, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName : System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName : NServiceBus.Core, Version=7.0.0.0, Culture=neutral, PublicKeyToken=9fc386479f8a226c
subAssembly.FullName : RabbitMQ.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=89e7d7c5feba84cesubAssembly.FullName : System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
subAssembly.FullName : System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.DirectoryServices.Protocols, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
subAssembly.FullName : System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
subAssembly.FullName : System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

subAssembly.FullName : MyCompany.MyProj1.NHibernateEntities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullsubAssembly.FullName : NHibernate, Version=5.1.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4subAssembly.FullName : System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
subAssembly.FullName : Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b
subAssembly.FullName : Remotion.Linq.EagerFetching, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b


subAssembly.FullName : System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : NServiceBus.Core, Version=7.0.0.0, Culture=neutral, PublicKeyToken=9fc386479f8a226c
subAssembly.FullName : NHibernate, Version=5.2.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4
subAssembly.FullName : System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

 1 .3 AppDomain.CurrentDomain.GetAssemblies :: NServiceBus.Core, Version=7.0.0.0, Culture=neutral, PublicKeyToken=9fc386479f8a226c
subAssembly.FullName : System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
subAssembly.FullName : System.Data.SqlXml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.ServiceModel.Internals, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
subAssembly.FullName : SMDiagnostics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
 1 .4 AppDomain.CurrentDomain.GetAssemblies :: System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Data.SqlXml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
 1 .5 AppDomain.CurrentDomain.GetAssemblies :: CrowdStrike.Sensor.ScriptControl, Version=5.32.11406.0, Culture=neutral, PublicKeyToken=null
 1 .6 
 1 .7 AppDomain.CurrentDomain.GetAssemblies :: System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName : System.Data.SqlXml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
 1 .8 AppDomain.CurrentDomain.GetAssemblies :: System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
 1 .9 AppDomain.CurrentDomain.GetAssemblies :: Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342
subAssembly.FullName : System.Data.SqlXml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Runtime.Caching, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3asubAssembly.FullName : System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
subAssembly.FullName : System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

 1 .10 AppDomain.CurrentDomain.GetAssemblies :: System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Data.SqlXml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
subAssembly.FullName : System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

 1 .11 AppDomain.CurrentDomain.GetAssemblies :: System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
subAssembly.FullName : System.Data.SqlXml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
 1 .12 AppDomain.CurrentDomain.GetAssemblies :: MyCompany.MyProj1.NHibernateMappings, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullsubAssembly.FullName : NHibernate, Version=5.1.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4subAssembly.FullName : System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
subAssembly.FullName : Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b
subAssembly.FullName : Remotion.Linq.EagerFetching, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b


subAssembly.FullName : System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

 1 .13 AppDomain.CurrentDomain.GetAssemblies :: NHibernate, Version=5.2.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4

subAssembly.FullName : SMDiagnostics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089subAssembly.FullName : System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
subAssembly.FullName : Remotion.Linq, Version=2.2.0.0, Culture=neutral, PublicKeyToken=fee00910d6e5f53b
subAssembly.FullName : System.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

(my question is not too big, I couldn't update with everything :( )

解决方案

when use code follow ,will dispaly all provider that you have

   static DataTable GetProviderFactoryClasses()
    {
        // Retrieve the installed providers and factories.
        DataTable table = DbProviderFactories.GetFactoryClasses();

        // Display each row and column value.
        foreach (DataRow row in table.Rows)
        {
            foreach (DataColumn column in table.Columns)
            {
                Console.Write(row[column]);
                Console.Write("\t");
            }
            Console.WriteLine(";");
        }

        return table;
    }

The error is exactly the provider name is "Oracle.ManagedDataAccess.Client" but "ODP.NET, Managed Driver";My error is the DbContext’s construction connectionstr is wrong,it should like "ConfigurationManager.ConnectionStrings["OperateLogOracle"].ConnectionString ?? "name=OperateLogOracle""

这篇关于“ODP.NET,托管驱动程序"System.Data.Common.DbProviderFactories.GetFactory 失败.但是“原始"作品的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆