LDAP中“服务器不可操作”错误的可能原因

时间:2011-06-30 19:00:00

标签: vb.net active-directory ldap

我已经搜索了Google几天,但无法提出任何答案。一周前,我们进行了服务器迁移。我们有一个集群环境,其中以下代码在一台服务器上运行,而另一台服务器不运行(我无法让它在我的非集群开发环境的本地机器上运行):

 rootDSE = New DirectoryEntry("LDAP://nonfullyqualifieddomain/RootDSE")

如果我尝试以上操作,我会得到问题标题中提到的一般错误(同样,它适用于其中一个服务器,但不适用于另一个服务器。)

但是,当我这样做时,DirectoryEntry对象被实例化:

 rootDSE = New DirectoryEntry("LDAP://fully.qualified.domain", adUserId, adPassword, AuthenticationTypes.Secure)

根据我在网上看到的内容,我最好的猜测是它与权限或配置有关,但我不熟悉应用程序的服务器管理方面。任何建议将不胜感激!

2 个答案:

答案 0 :(得分:1)

每次我在其中一个基础架构中使用“服务器无法运行”时,都是因为我试图在糟糕的地址上连接LDAP服务器。这是由于:

  • 错误的DNS解析
  • Bad Netbios解决方案
  • 防火墙过滤

我建议将DNS解析用于生产和测试环境,并将直接IP地址用于开发环境。

确保在您使用的地址上绑定了389(或636)端口,您可以连接到该端口。在Windows Server 2008上,LDP.EXE是测试LDAP连接的好工具(存在于W2K3资源工具包中)。在开发计算机上,我使用Apache Directory Studio,这也是测试目录连接和内容的好工具。

答案 1 :(得分:0)

我在其中一个遗留应用程序中遇到了同样的错误。这是内存泄漏问题。为了解决这个问题,我确保代码在使用它完成后处理Directory条目。类似的东西:

using (System.DirectoryServices.DirectoryEntry OUEntry
   = new DirectoryEntry(domain, userName, userPassword))
{
    // your code here
}