我已经搜索了Google几天,但无法提出任何答案。一周前,我们进行了服务器迁移。我们有一个集群环境,其中以下代码在一台服务器上运行,而另一台服务器不运行(我无法让它在我的非集群开发环境的本地机器上运行):
rootDSE = New DirectoryEntry("LDAP://nonfullyqualifieddomain/RootDSE")
如果我尝试以上操作,我会得到问题标题中提到的一般错误(同样,它适用于其中一个服务器,但不适用于另一个服务器。)
但是,当我这样做时,DirectoryEntry对象被实例化:
rootDSE = New DirectoryEntry("LDAP://fully.qualified.domain", adUserId, adPassword, AuthenticationTypes.Secure)
根据我在网上看到的内容,我最好的猜测是它与权限或配置有关,但我不熟悉应用程序的服务器管理方面。任何建议将不胜感激!
答案 0 :(得分:1)
每次我在其中一个基础架构中使用“服务器无法运行”时,都是因为我试图在糟糕的地址上连接LDAP服务器。这是由于:
我建议将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
}