使用ODP.NET进行LDAP查询,托管驱动程序测试版(Oracle.ManagedDataAccess.dll)在C#应用程序中失败

时间:2013-01-28 12:22:08

标签: c# oracle ldap odp.net data-access

我在我的C#应用​​程序中使用ODP.NET, Managed Driver Beta(Oracle.ManagedDataAccess.dll)来访问Oracle数据库。这是为了替换使用ODP.NET的本机版本以删除Oracle Client 10g / 11g / etc上的所有本地依赖项。这样就不必在本地安装了。这是我找到的解决方案here

这是我的C#代码:

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

到达此行并成功创建OracleConnection对象,从而建议成功加载所有依赖项。但是,它会在调用Open()时抛出 OracleException 。错误消息是:

  

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

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

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

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

1 个答案:

答案 0 :(得分:2)

我问同一个question on the Oracle forums,有人想出answer。管理的ODP.NET似乎不支持LDAP,而且它位于release notes

我确实有一个further question来自此,如果有人可以通过回答那个来帮助我,我会很高兴。

非常感谢。