C# EF与甲骨文的合作——”;在配置中找不到指定的存储提供程序,或者该提供程序无效;
我正在.NET4.5程序中使用实体框架和oracle客户端(odp.net) 在生产机器中,我得到以下错误:C# EF与甲骨文的合作——”;在配置中找不到指定的存储提供程序,或者该提供程序无效;,c#,oracle,entity-framework,odp.net,C#,Oracle,Entity Framework,Odp.net,我正在.NET4.5程序中使用实体框架和oracle客户端(odp.net) 在生产机器中,我得到以下错误: System.ArgumentException: The specified store provider cannot be found in the configuration, or is not valid. ---> System.ArgumentException: Unable to find the requested .Net Framework Data Pr
System.ArgumentException: The specified store provider cannot be found in the configuration, or is not valid. ---> System.ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed.
at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)
at System.Data.EntityClient.EntityConnection.GetFactory(String providerString)
开发计算机上没有错误。
生产计算机上还有其他使用odp.net针对oracle成功运行的.net程序。
这些旧程序与.NET3.5一起使用
我明白这一点,因为.NET4.5是在Orcale客户端安装oracle之后安装的
数据访问组件未在.net 4.5 machine.config中注册。
我尝试将system.data部分从3.5 machine.config复制到应用程序的配置文件中,但没有帮助。
重新安装Oracle客户端并不是我们想要做的事情——因为其他应用程序工作正常
我还注意到,在ODP.Net版本中,开发机器和生产机器之间存在着细微的差异。
我的项目没有对oracle.dataaccess.dll的任何引用。能否在生产机器上运行oracle ODAC安装程序?这将创建所需的machine.config条目
此外,在当前可用的测试版中,我们提供了一个“本地”安装,它修改web或应用程序配置,而不是机器配置。您可能刚刚在64操作系统上安装了32位版本。在运行时,您还需要安装64位版本
确保添加tns文件并在安装后重新启动如果您在64位系统上,请确保ASP.NET应用程序使用的应用程序池允许32位应用程序。使用管理工具下的Internet信息服务(IIS)管理器工具配置您的web应用程序和相应的池。(在IIS管理器中找到该池,右键单击它并选择“高级设置”。)否则,您的应用程序可能会在64位模式下运行,并寻求64位版本的Oracle数据提供程序,而您的计算机上可能不存在该版本的Oracle数据提供程序。重新安装ODAC是否会对其他应用程序有害,这些应用程序现在可以在odp.net上正常运行?我尝试手动修改machine.config。现在获取:System.Data.ProviderIncompatibleException:存储提供程序工厂类型“Oracle.DataAccess.Client.OracleClientFactory”未实现IServiceProvider接口。请使用实现此界面的存储提供程序。首先,不要手动修改它。运行安装程序并查看安装程序正在执行的操作。