问题标签 [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.
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
欢迎任何想法?可以连接吗?
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 是无效的。我究竟做错了什么?
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。
任何帮助将不胜感激。谢谢你的时间 :)
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
标签)
更新
需要确保
w3wp.exe
可以实际访问文件。设置系统环境变量
TNS_ADMIN
是一种可能的解决方案。在这种特殊情况下就足够了,但我仍然很好奇如何通过web.config
.
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 并查询表并返回记录来确认连接字符串是正确的。
oracle - 使用 refcursor 执行 oracle sql 语句会导致执行时间过长
我目前正在尝试从几个表中获取行数。当我直接运行它时,它会在几毫秒内执行并返回。但是,当我尝试使用 refcursor 返回类型执行相同的查询时,它需要一分钟多的时间。我也在应用程序的其他部分以相同的格式运行类似的查询,它们执行得很好。
删除内部联接使其在几毫秒内运行,但我需要保留内部联接才能对表进行一些动态查询。它还取决于这个特定的 where 子句。在其他列上运行 where 子句不会导致此问题。
不知道为什么用 refcursor 包装查询会增加执行时间。帮助了解为什么会发生这种情况以及如何解决它会很棒。
asp.net - ASP.NET 不会通过 SSL 连接到 Oracle,控制台应用程序会。有什么不同?
我正在尝试使用托管 ODP.NET 提供程序通过 SSL 连接到客户端的 Oracle 数据库。客户端提供了我在服务器上导入的自签名证书。为了测试连接,我创建了一个控制台应用程序,它只是打开连接然后关闭它。这成功了。但是,当在同一台服务器上尝试来自 ASP.NET 的相同简单连接时,我总是会收到此错误:
这是连接字符串:
在配置文件中,我指向 SQLNET 设置的目录:
最后,来自该目录中 sqlnet.ora 的这些设置:
控制台应用程序的连接成功,但来自 ASP.NET 的连接因钱包错误而失败,是否有任何原因?他们使用完全相同的设置。我尝试了很多不同的东西,但我欢迎任何建议。
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
,驱动程序记录了很多异常,这些异常发生在这些块中:
上述异常使我相信我可能不会创建/处置/等。连接是否正确,因为它看起来像是在尝试从关闭的连接中读取?
上面的代码中有什么明显导致这种情况的吗?
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 钱包模式的案例。
为了我有:
为我们的应用程序创建了一个钱包(使用 mkstore utils)并将其放在服务器目录中:即
C:\users\%APP_POOL_ID%\wallet
创建(对于所有应用程序)一个 sqlnet.ora 文件并将其放在服务器的 Oracle 主目录中:即
%ORACLE_HOME%\网络\管理员
内容如下:
使用以下连接字符串:
/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 命令测试与数据库的连接,我排除了问题是一个真正错误的登录名/密码。
谁能帮我?
非常感谢!
asp.net-core - Oracle.ManagedDataAccess.Core (Odp.Net Core) 用户定义类型和关联数组类型
我想通过 Oracle.ManagedDataAccess.Core(Odp.Net Core)将用户定义的类型或具有类型的关联数组传递给 dotnet 核心中的存储过程。但我找不到任何明确的例子。
Odp.net Core 是否支持用户定义类型或关联数组类型,我不知道。
这是我的类型;
存储过程参数;
和dotnet核心代码;