我在本地机器(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 实例的后续调用大约需要 40 毫秒。一旦您让实例保持几分钟未查询,然后调用会在第一次调用时返回到 18 秒。
我在事件日志中找不到任何不妥之处。我还尝试过以不同的方式连接到实例(使用本地和域 Windows 帐户简单地绑定到上面实例中定义的用户),并且第一次命中时这 18 秒的额外延迟总是会发生。谁能给我任何关于导致此问题的原因和/或我如何诊断/修复它的指示?