我在.net 4.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)
开发机器没有错误。 生产机器上还有其他.net程序使用odp.net成功运行oracle。 这些旧程序使用.net 3.5。
我理解是因为.net 4.5是在Orcale客户端安装oracle之后安装的 数据访问组件未在.net 4.5 machine.config中注册。 我尝试将3.5 machine.config中的system.data部分复制到应用程序的配置文件中 - 但它没有帮助。 重新安装Oracle客户端不是我们想要做的事情 - 因为其他应用程序可以正常工作。
我还注意到开发机器和生产之间的ODP.Net版本存在细微差别。 我的项目没有任何对oracle.dataaccess.dll的引用。
答案 0 :(得分:0)
您可以在生产计算机上运行ODAC的Oracle安装程序吗?这将创建所需的machine.config条目。
同样在目前可用的测试版中,我们提供了一个"本地"安装修改web或app配置而不是机器配置。
答案 1 :(得分:0)
您可能只是在64操作系统上安装了32位版本。在运行时,您还需要安装64位版本。
确保在安装后添加tns文件和reastart
答案 2 :(得分:0)
如果您使用的是64位系统,请确保ASP.NET应用程序使用的应用程序池允许使用32位应用程序。使用“管理工具”下的“Internet信息服务(IIS)管理器”工具配置Web应用程序和相应的池。 (在IIS管理器中找到该池,右键单击它并选择“高级设置”。)否则,您的应用程序可能会以64位模式运行,并寻找可能不存在于您的Oracle数据提供程序的64位版本机。