【发布时间】:2014-10-12 21:38:55
【问题描述】:
使用 Visual Studio 2013,我已将最新版本的 ODP.NET Managed 添加到使用 Nuget 的项目中:
Install-Package odp.net.managed
http://www.nuget.org/packages/odp.net.managed/121.1.2
现在,当我尝试运行以下代码时:
Database db = DatabaseFactory.CreateDatabase();
它会抛出以下异常:
An exception of type 'System.ArgumentException' occurred
in System.Data.dll but was not handled in user code
Additional information: Unable to find the requested .Net
Framework Data Provider. It may not be installed.
阅读其他用户的类似问题后,我将托管驱动部分添加到 C:\Windows\Microsoft.Net\Framework64\v4.0.30319\Config\machine.config:
<system.data>
<DbProviderFactories><add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
<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.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
</system.data>
但这没有任何影响。
我在 web.config 中指定了连接字符串,但我不确定它是否正在查看连接字符串格式,因为在我打开连接之前它失败了:
<connectionStrings>
<add name="OneCDPBuild"
providerName="Oracle.ManagedDataAccess.Client"
connectionString="Data Source=database;user id=IDhere;pwd=passwordhere;" />
</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.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
</system.data>
【问题讨论】:
-
那个 Nuget 包不是由 Oracle 上传的。它可能没有执行允许 ODP.NET 被视为提供程序工厂所需的操作。为获得最佳效果,请从 OTN 网页安装 ODP.NET 托管提供程序:oracle.com/technetwork/topics/dotnet/downloads/index.html