“ODP.NET,托管驱动程序"System.Data.Common.DbProviderFactories.GetFactory 失败.但是“原始"作品 [英] "ODP.NET, Managed Driver" is failing with System.Data.Common.DbProviderFactories.GetFactory. But "raw" works
问题描述
嘎嘎.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屋!