我在.net 4.5程序中使用實體框架和oracle客戶端(odp.net)。EF with oracle - 「在配置中找不到指定的存儲提供程序,或者無效。」
在生產機器,我得到以下錯誤:
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的引用。
重新安裝ODAC是否對其他應用程序有害,對odp.net可以正常工作? – 2014-10-02 07:37:17
我試着用手修改machine.config。現在得到:System.Data.ProviderIncompatibleException:商店提供者工廠類型「Oracle.DataAccess.Client.OracleClientFactory」沒有實現IServiceProvider接口。使用實現此接口的商店提供商 – 2014-10-02 07:43:19
最初,請勿手動修改它。運行安裝程序並查看安裝程序正在執行的操作。 – 2014-10-02 17:46:45