问题标签 [odp.net-managed]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1234 浏览

oracle - 如何使用 ODP.NET Core 连接到 Oracle 9i 数据库 - 托管驱动程序

当我尝试连接到 Oracle 9i db 时,总是得到 ORA-1017 无效的用户名/密码;登录被拒绝。在 Oracle 10g 或更高版本上一切正常。

ODP.NET 核心:2.18.3;ASP.NET 核心:2.1.403

ConnectionString:“数据源=myTnsName;密码=myPassword;用户ID=myUserId”

已设置 TnsAdmin。

在数据库端的 Oracle 日志中,我发现了这个条目:ORA-1017 invalid username/password; 未知身份验证类型:6A

欢迎任何想法?可以连接吗?

0 投票
1 回答
104 浏览

c# - 使用 EntityFramework for ODP.NET,为什么 Oracle 12c 上会挂起以下原始 SQL 命令?

我正在使用

  • 视觉工作室 2015
  • Oracle.ManagedDataAccess 18.3.0
  • Oracle.ManagedDataAccess.EntityFramework 18.3.0
  • 实体框架 6.2.0

在一个测试项目中。以下基于 EF 的原始 SQL 命令在 Oracle 11g 快捷版上执行,但在 Oracle 12c 企业版上失败(更具体地说,它挂起,因为它似乎没有完成执行,但没有引发异常)。

当然,我的原始 SQL 是无效的。我究竟做错了什么?

0 投票
1 回答
198 浏览

oracle - 使用 ODP.net 和 NTS 作为 sysdba 的 ora-01017

我无法使用 NTS 和 ODP 作为 sysdba 连接到我的 oracle 数据库(目标是使用大量没有任何密码的维护脚本)。我做了一些研究但没有成功,所以我来了。

这是我使用的 powershell 代码:

这是我的结果:

  • 从只有 odp dll 的多个服务器(2008r2、2012r2、2016 windows 服务器),我收到 ORA-01017 错误:用户名/密码无效;
  • 从安装了 oracle 客户端的多台服务器,我收到相同的错误
  • 从一个oracle服务器到另一个oracle服务器,连接成功*_*

事实:

  • oracle 数据库是 12.1.0.2.0 std,服务器是 2012R2 和 sqlnet.ora 仅包含以下 lign :

    SQLNET.AUTHENTICATION_SERVICES = (NTS)

  • 我的帐户是每个数据库服务器上 ora_dba 组的成员。

  • Fips 算法被禁用。

  • 来自任何带有 oracle 组件的计算机的连接都可以使用 sqlplus /@some_entry 作为 sysdba。

任何帮助将不胜感激。谢谢你的时间 :)

0 投票
2 回答
4079 浏览

oracle - 如何在 asp.net 核心 Web 应用程序中设置 tnsnames.ora?

我有一个小的 asp.net core 2.2 应用程序应该访问一个 oracle 数据库;我正在使用 NuGet Oracle.ManagedDataAccess.Core (2.18.6),它只适用于我的机器。

当我使用 IIS 将它部署到 windows 服务器时,我将一个tnsnames.ora文件放在应用程序的目录中,然后它就可以正常工作了。

现在我想使用共享tnsnames.ora文件。我已经尝试过web.config以下操作(来自 StackOverflow/Google 对类似问题的回答)。

不幸的是,这不起作用(并且由于核心版本Oracle.ManagedDataAccess.dll没有ODPMSectionHandler类,这并不令人意外)。

那么,有没有办法tnsnames.ora与 odp.net 核心共享文件?

(PS imo我们需要odp.net-core标签)

更新

  1. 需要确保w3wp.exe可以实际访问文件。

  2. 设置系统环境变量TNS_ADMIN是一种可能的解决方案。在这种特殊情况下就足够了,但我仍然很好奇如何通过web.config.

0 投票
1 回答
1962 浏览

c# - 使用 EF Core 搭建 Oracle 数据库的脚手架失败并出现登录被拒绝错误

我正在尝试从 Oracle 数据库中构建一些类以与 .NET Core Web API 一起使用。我已经安装了以下 nuget 包:

Oracle.EntityFrameworkCore - v2.18.0-beta3
Oracle.ManagedDataAccess.Core - v2.18.6

我已经尝试与两个提供商一起搭建脚手架,但我得到了两个不同的错误。

脚手架命令 -Scaffold-DbContext "Data Source=(DESCRIPTION=(ADDRESS_LIST= (ADDRESS=(COMMUNITY=tcpcom.world)(PROTOCOL=tcp)(HOST={Host})(PORT={Port})))(CONNECT_DATA=(SID={SID}))); User ID={UserId};Password={Password}" {Provider} -o Models

  • Oracle.EntityFrameworkCore 脚手架错误
    ORA-01017: invalid username/password; logon denied
    • 我已确认我的登录信息正确无误
  • Oracle.ManagedDataAccess 脚手架错误
    Unable to find expected assembly attribute named DesignTimeProviderServicesAttribute in provider assembly Oracle.ManagedDataAccess. This attribute is required to identify the class which acts as the design-time service provider factory.
    • 我试过实现IDesignTimeDbContextFactory<T>接口但没有运气

我今天从谷歌尝试了无数的东西,但没有运气。这可能是 Oracle 驱动程序的问题吗?

编辑

我创建了一个 .NET Core 控制台应用程序,安装了 EF Core 和 Oracle.EntityFrameworkCore 并尝试搭建脚手架,但遇到了同样的错误。还通过使用它来创建 DbContext 并查询表并返回记录来确认连接字符串是正确的。

0 投票
0 回答
29 浏览

oracle - 使用 refcursor 执行 oracle sql 语句会导致执行时间过长

我目前正在尝试从几个表中获取行数。当我直接运行它时,它会在几毫秒内执行并返回。但是,当我尝试使用 refcursor 返回类型执行相同的查询时,它需要一分钟多的时间。我也在应用程序的其他部分以相同的格式运行类似的查询,它们执行得很好。

删除内部联接使其在几毫秒内运行,但我需要保留内部联接才能对表进行一些动态查询。它还取决于这个特定的 where 子句。在其他列上运行 where 子句不会导致此问题。

不知道为什么用 refcursor 包装查询会增加执行时间。帮助了解为什么会发生这种情况以及如何解决它会很棒。

0 投票
0 回答
1086 浏览

asp.net - ASP.NET 不会通过 SSL 连接到 Oracle,控制台应用程序会。有什么不同?

我正在尝试使用托管 ODP.NET 提供程序通过 SSL 连接到客户端的 Oracle 数据库。客户端提供了我在服务器上导入的自签名证书。为了测试连接,我创建了一个控制台应用程序,它只是打开连接然后关闭它。这成功了。但是,当在同一台服务器上尝试来自 ASP.NET 的相同简单连接时,我总是会收到此错误:

这是连接字符串:

在配置文件中,我指向 SQLNET 设置的目录:

最后,来自该目录中 sqlnet.ora 的这些设置:

控制台应用程序的连接成功,但来自 ASP.NET 的连接因钱包错误而失败,是否有任何原因?他们使用完全相同的设置。我尝试了很多不同的东西,但我欢迎任何建议。

0 投票
1 回答
721 浏览

asp.net-core - 如何安全地创建与 oracle 和 asp.net core 的连接?

使用 ASP.NET Core 2.2、Dapper Oracle 1.0.1 和托管 Oracle ODP 驱动程序 2.19.50 使用以下代码发出简单的读取查询。下面的代码可能每分钟被不同的 API 使用者调用约 10 次。

大多数情况下,上述工作正常,但出现了看似随机的 .NET 异常,如下所示。

SocketException:连接尝试失败,因为连接方一段时间后没有正确响应,或者连接的主机没有响应,建立连接失败

OracleInternal.Network.ReaderStream.Read(OraBuf OB) NetworkException: ORA-12570: Network Session: Unexpected packet read error

OracleInternal.Network.ReaderStream.Read(OraBuf OB) OracleException:

ORA-12570:网络会话:意外的数据包读取错误 Oracle.ManagedDataAccess.Client.OracleException.HandleError(OracleTraceLevel 级别,OracleTraceTag 标记,OracleTraceClassName 类名,OracleTraceFuncName funcName,异常 ex,OracleLogicalTransaction oracleLogicalTransaction)

打开跟踪后OracleConfiguration.TraceLevel = 7,驱动程序记录了很多异常,这些异常发生在这些块中:

上述异常使我相信我可能不会创建/处置/等。连接是否正确,因为它看起来像是在尝试从关闭的连接中读取?

上面的代码中有什么明显导致这种情况的吗?

0 投票
0 回答
1272 浏览

odp.net - Oracle.ManagedDataAccess.Client.OracleException: ORA-01017: 无效的用户名/密码;登录被拒绝

我在使用 ODP.NET 版本 19.3(可用的最新 Oracle 托管数据访问)使用安全外部密码存储 (SEPS) 连接到 Oracle 11g 时遇到问题,其中 Oracle 登录凭据存储在客户端 Oracle 钱包中。

如果我切换到经典的登录名/密码连接字符串,则数据库连接和命令没有问题。

此外,我报告所有其他使用经典 ODP 11(非托管 DataAccess)的 .net 应用程序在 SEPS 模式下连接都没有问题;事实上,我正在构建第一个使用 ODP.NET 19.3 和 SEPS 和 Oracle 钱包模式的案例。

为了我有:

  1. 为我们的应用程序创建了一个钱包(使用 mkstore utils)并将其放在服务器目录中:即

    C:\users\%APP_POOL_ID%\wallet

  2. 创建(对于所有应用程序)一个 sqlnet.ora 文件并将其放在服务器的 Oracle 主目录中:即

    %ORACLE_HOME%\网络\管理员

内容如下:

  1. 使用以下连接字符串:

    /li>

注意:用户 ID 和代理用户 ID 在连接字符串内用方括号指定。

这是我们获得的堆栈跟踪异常:

Oracle.ManagedDataAccess.Client.OracleException: ORA-01017: 无效的用户名/密码;登录被拒绝

在 OracleInternal.ConnectionPool.PoolManager`3.Get(ConnectionString csWithDiffOrNewPwd,布尔 bGetForApp,OracleConnection connRefForCriteria,字符串 affinityInstanceName,布尔 bForceMatch)

在 OracleInternal.ConnectionPool.OraclePoolManager.Get(ConnectionString csWithNewPassword,布尔 bGetForApp,OracleConnection connRefForCriteria,字符串 affinityInstanceName,布尔 bForceMatch)

在 OracleInternal.ConnectionPool.OracleConnectionDispenser`3.Get(ConnectionString cs,PM conPM,ConnectionString pmCS,SecureStringsecurePassword,SecureStringsecureProxyPassword,OracleConnection connRefForCriteria)

在 Oracle.ManagedDataAccess.Client.OracleConnection.Open()

这是我通过<oracle.manageddataaccess.client>配置部分启用的跟踪的一部分:

此外,在另一个跟踪文件中,可以看到WriteOAuthMessage 将 BLANK 密码传递给 DB:

通过使用用户凭据登录服务器计算机并通过 sqlplus 命令测试与数据库的连接,我排除了问题是一个真正错误的登录名/密码。

谁能帮我?

非常感谢!

0 投票
1 回答
424 浏览

asp.net-core - Oracle.ManagedDataAccess.Core (Odp.Net Core) 用户定义类型和关联数组类型

我想通过 Oracle.ManagedDataAccess.Core(Odp.Net Core)将用户定义的类型或具有类型的关联数组传递给 dotnet 核心中的存储过程。但我找不到任何明确的例子。

Odp.net Core 是否支持用户定义类型或关联数组类型,我不知道。

这是我的类型;

存储过程参数;

和dotnet核心代码;