我无法使用 Oracle.ManagedDataAccess 和 Windows 本机身份验证连接到 Oracle 数据库。
我正在一个工作站上开发,我可以通过 PL/SQL Developer 使用 NTS 连接到同一个数据库,并使用非托管 Oracle.DataAccess 通过 C# 代码连接到同一个数据库。这使我相信数据库、工作站或帐户都没有根本性的问题。现在我正在尝试评估是否可以在我们的解决方案中切换到 Oracle.ManagedDataAccess。
到目前为止,我已经尝试了以下方法:
- 创建了一个新的空白项目 OracleManagedAccessTest
- 在引用下添加了 NuGet 包 Oracle.ManagedAccessTest v19.3.1(撰写本文时的最新版本)
- 更新 App.config 中的 <dataSource> 标记以匹配 tnsnames.ora 中的条目(使 C# 项目自包含,不依赖外部组件)
- 在 App.config 的 <oracle.manageddataaccess.client><version number="*"><settings> 下添加了 <setting name="sqlnet.authentication_services" value="NTS"/> 标签
我正在使用以下最小代码来测试连接:
try
{
using (OracleConnection conn = new OracleConnection("Data Source=EDBDEVD;User Id=/;"))
{
conn.Open();
}
}
catch (OracleException ex)
{
Console.WriteLine("Exception Message: " + ex.Message);
}
连接尝试失败并出现以下错误:“ORA-01017:用户名/密码无效;登录被拒绝”
这看起来几乎是一个太简单的问题,但我似乎无法解决它,或者在网上找到一个可行的解决方案。任何帮助将不胜感激。