gpt4 book ai didi

odp.net - 在 Oracle 中找不到请求的 .Net Framework 数据提供程序

转载 作者:行者123 更新时间:2023-12-04 11:26:11 27 4
gpt4 key购买 nike

string constr = "数据源=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=spp01)(PORT=1521))(CONNECT_DATA=(SID=Global)));User

Id=SYSMAN;密码=testman3”;
string ProviderName = "Oracle.DataAccess.Client";

        DbProviderFactory factory = DbProviderFactories.GetFactory(ProviderName);

我能够在控制台和 winforms 应用程序中连接到 oracle。上面的代码在一个单独的类库中。我已经安装了 64 位 ODAC。

ORACLE.DATAACCESS 设置为 2.x ver 2.112.3.0。我检查了 machine.config 条目 Framework64 v2.0.50727 和 v4.0.30319

type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>

CPU = 任何 CPU 框架=3.5

当我从 ASP.net 中的类库调用相同的代码时,出现以下错误

enter image description here
System.ArgumentException 未被用户代码处理
Message=无法找到请求的 .Net Framework 数据提供程序。它可能没有安装。
来源=系统.数据
堆栈跟踪:
在 System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)

我什至将 apppool 设置为允许 32 位应用程序。

如何解决此错误?

最佳答案

该错误表明您的系统上未安装 Oracle 客户端。要验证它,您可以运行以下代码行:

System.Data.Common.DbProviderFactories.GetFactoryClasses()

您将获得所有已安装数据提供程序的数据表。如果 Oracle.DataAccess.Client invarient 未在 DataTable 中列出,则表示它未安装。

我在我们的一台客户端机器上也遇到了同样的问题,在调试时我发现 Oracle 客户端是从 Admin 用户安装的,他们试图从其他用户那里访问它。

从当前用户安装 Oracle 客户端可解决此问题。

请不要忘记在安装 Oracle 客户端后重新启动您的应用程序。

关于odp.net - 在 Oracle 中找不到请求的 .Net Framework 数据提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17452328/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com