我在本地计算机(Windows Server 2008 R2盒)上为新应用程序设置了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帐户),并且在第一次命中时总会发生这种18秒的额外延迟。任何人都可以给我指出导致这种情况的原因和/或我如何诊断/修复它吗?
答案 0 :(得分:2)
这可能是由于您对服务器进行身份验证的方式。
您在域控制器中安装ADLDS的服务器是什么?
您的客户端计算机与服务器位于同一个域中吗?
客户端计算机如何解析URI的DNS部分?
LDAP://myserver
替换LDAP://myserver.ourdomain.local
。