1

我在我的 C# 应用程序中使用ODP.NET、托管驱动程序 Beta (Oracle.ManagedDataAccess.dll) 来访问 Oracle 数据库。这是为了替换使用 ODP.NET 的本机版本,以删除对 Oracle 客户端 10g/11g/等的所有本地依赖项。这样就不必在本地安装。这是我在这里找到的解决方案。

这是我的 C# 代码:

new OracleConnection("Data Source=ABCDEFG1;User Id=myuserid;Password=mypassword;").Open();

到达此行并OracleConnection成功创建对象,从而表明所有依赖项均已成功加载。但是,它会调用Open(). 错误信息是:

网络传输:无法解析连接主机名

我的组织使用 LDAP 执行主机名查找,这是通过 ORA 文件使用 DIRECTORY_SERVER 设置完成的。但是,我很难让它使用 ODP.NET 的托管版本来执行此操作。ORA 文件存储在 C:\Apps\oracle\network\admin 中。

tnsping 我的数据源('ABCDEFG1')工作正常。因此,我使用了 tnsping 的输出,并使用此输出在 tnsnames.ora 中为 ABCDEFG1 添加了一个条目。然后我的应用程序连接成功。所以,我知道它肯定是在查找和使用 ORA 文件,但是由于某种原因,它不会执行非托管 ODP.NET(在其他应用程序中)使用的 LDAP 查找。

使用这个新的托管 ODP.NET 的人是否知道这个问题或我可能做错了什么?

4

1 回答 1

2

我在 Oracle 论坛上问过同样的问题,那里有人给出了答案。托管 ODP.NET 似乎不支持 LDAP,这在其发行说明中。

不过,我确实有一个进一步的问题,如果有人可以通过回答这个问题来进一步帮助我,我会很高兴。

非常感谢。

于 2013-01-28T16:34:25.593 回答