无法使用ntdsa对象名称获取Active Directory域控制器的DNS主机名

时间:2016-08-01 12:02:14

标签: .net windows dns active-directory

我有一个通过LDAP使用Active Directory信息的Web应用程序:

<add name="ADConnectionString" connectionString="LDAP://domain1.com/OU=Users,DC=domain1,DC=com" />

它工作正常,但是当管理员将新域2放入与domain1相同的林中时,我的应用程序失败并出现以下错误:

Server Error in "/" Application.

Unable to obtain DNS hostname of Active Directory domain controller with ntdsa object name "CN=NTDS Settings,CN=SERVERNAME,CN=Servers,CN=Datacenter,CN=Sites,CN=Configuration,DC=domain1,DC=com"

[ActiveDirectoryOperationException: Unable to obtain DNS hostname of Active Directory domain controller with ntdsa object name "CN=NTDS Settings,CN=SERVERNAME,CN=Servers,CN=Datacenter,CN=Sites,CN=Configuration,DC=domain1,DC=com".]
System.DirectoryServices.ActiveDirectory.Utils.GetReplicaList(DirectoryContext context, String partitionName, String siteName, Boolean isDefaultNC, Boolean isADAM, Boolean isGC) +9909
System.DirectoryServices.ActiveDirectory.GlobalCatalog.FindAllInternal(DirectoryContext context, String siteName) +133
System.DirectoryServices.AccountManagement.ADStoreCtx.GetGroupsMemeberOf(Principal p) +1134

有趣的是,在domain1中已经不再存在SERVERNAME(它很久以前被删除了),现在它在domain2中。此外,我不需要任何数据(没有用户信息)

似乎在添加域名2之后我的应用程序尝试查找将使用它的域控制器进行复制的任何服务器,看到SERVERNAME但由于SERVERNAME没有设置正确的DNS主机名而无法访问它。我相信一旦SERVERNAME拥有它的DNS主机名,这个错误就会消失 (如果我错了,请纠正我) 但仍有一些问题

  1. 我的结论在哪里,我错了?
  2. 为什么AD库关心复制?
  3. 为什么我的应用仍尝试在domain1中找到SERVERNAME?
  4. 如何在设置domain2及其服务器时避免此错误?
  5. 提前感谢您的回答

1 个答案:

答案 0 :(得分:0)

<add name="ADConnectionString" connectionString="LDAP://domain1.com/CN=Users,DC=domain1,DC=com" />

用户是通用名称而非OU,对于所有查询,您是否清理了元数据?删除服务器后