Active directory AD LDS首次访问速度慢-为什么?

Active directory AD LDS首次访问速度慢-为什么?,active-directory,adam,Active Directory,Adam,我在本地计算机(Windows Server 2008 R2 box)上为一个新应用程序设置了一个ADLDS实例,并编写了一些.Net代码来访问它。这是我正在测试的函数之一,正如您所看到的,它非常简单 Dim MyLdapUri As New Uri(searchRoot) Using MyContext As New PrincipalContext(ContextType.ApplicationDirectory,

我在本地计算机(Windows Server 2008 R2 box)上为一个新应用程序设置了一个ADLDS实例,并编写了一些.Net代码来访问它。这是我正在测试的函数之一,正如您所看到的,它非常简单

Dim MyLdapUri As New Uri(searchRoot)

Using MyContext As New PrincipalContext(ContextType.ApplicationDirectory,
                                         MyLdapUri.Authority,
                                         MyLdapUri.LocalPath.Substring(1), ContextOptions.SimpleBind,
                                         strUsername, strPassword)
        Return UserPrincipal.FindByIdentity(MyContext, IdentityType.Name, username)
    End Using
我发现重复发生的一件事是,当我第一次调用这个函数或任何其他函数从测试台应用程序访问实例时,会出现~18秒的延迟。对AD LDS实例的后续调用大约为40ms。在几分钟内不查询实例后,第一次调用将返回到18秒


我在事件日志中找不到任何异常。我还尝试过以不同的方式连接到实例(使用本地和域Windows帐户,简单绑定到实例中定义的用户,如上所述),第一次点击时,这种额外的延迟总是会发生。有谁能给我一些建议,说明是什么原因导致了这种情况,以及/或者我可能如何诊断/修复它?

这可能是由于您对服务器进行身份验证的方式造成的

是在域控制器中安装ADLDS的服务器吗

您的客户端计算机与服务器在同一个域中吗

客户端计算机如何解析URI的DNS部分

  • 在您的例子中,您将LDAP://myserver替换为
    LDAP://myserver.ourdomain.local

在发现这一点的喜悦中,我几个月来都忘了更新它!问题似乎有点奇怪,uri中的主机名必须是完整的LDAP://myserver.ourdomain.local,而不仅仅是LDAP://myserver。奇怪,尤其是当一切都在同一个领域,但似乎工作甜坚果之后。对于WCF调用中使用的URI,我们也遇到了类似的问题。我每分钟都会遇到同样的问题。我找了好几个小时才找到你的帖子。非常感谢!!!!!!!因此,即使您没有单击有用的答案,也可以单击有用的问题。