Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EF与甲骨文的合作——”;在配置中找不到指定的存储提供程序,或者该提供程序无效;_C#_Oracle_Entity Framework_Odp.net - Fatal编程技术网

C# EF与甲骨文的合作——”;在配置中找不到指定的存储提供程序,或者该提供程序无效;

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

我正在.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 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接口。请使用实现此界面的存储提供程序。首先,不要手动修改它。运行安装程序并查看安装程序正在执行的操作。