【问题标题】:Why do I have a slow initial response using by the Active Directory server?为什么 Active Directory 服务器使用我的初始响应很慢?
【发布时间】:2012-04-03 18:32:32
【问题描述】:

使用 DirectoryEntry 通过端口 636 连接到 DMZ 中的命名 Active Directory 服务器(即不在域中),然后使用 DirectorySearcher 提取属性。

字符串

string serverPath = "LDAP://some.domain.com:636/OU=XXXX,DC=xxxx,DC=xxxxxxxxx";
var searchRoot = new DirectoryEntry(
serverPath, 
User, 
Pass, 
AuthenticationTypes.Secure);

第一次查询很慢,大约 22-25 秒。有人向我解释说,这可能是因为 IIS 7.5 可能正在根据 CRL 查找 AD 服务器上的证书,但没有得到响应。然后,后续查询会接受该答案,直到该过程超时,因此下一个查询将再次花费 22-25 秒。

我在代码示例中描述的连接类型实际上是在提取证书,还是只是在加密状态下通过端口发送流量,而服务器之间没有与证书相关的握手?

我的 IIS 是否必须要有证书才能正常工作?我应该说我正在使用这种模式:http://forums.asp.net/p/907421/1007517.aspx

【问题讨论】:

  • 你看到这个帖子了吗:velocityreviews.com/forums/…
  • 不用了,我刚刚经历过。非常相似的情况,但不幸的是该线程中的建议不起作用。
  • 值得一试。不幸的是,我没有给你答案,但我认为如果它是一个解决方案或者其他人有问题并且该帖子很有帮助,则可能值得发布。

标签: asp.net iis-7 active-directory


【解决方案1】:

这里不涉及 SSL。

serverPath 是什么样的?您可能正在超时 - 也许是 DNS。我将从网络跟踪开始。

【讨论】:

  • 刚刚将 serverPath 添加到代码示例中。跟踪不会显示服务器可用/不可用吗?
  • 您在域中吗?如果您在域安全上下文中运行,则不需要左侧部分(服务器:端口)。网络跟踪很可能会告诉您减速发生的位置。
  • 更新问题,服务器不在域中。
【解决方案2】:

当您使用端口 636 时,将使用 LDAP over SSL,

http://en.wikipedia.org/wiki/Ldap

如果您使用 Microsoft Network Monitor 或 Wireshark 来捕获数据包,您可能会更深入地了解数据包级别。

在这种情况下,CRL 是必需的,因为它默认启用。但您可以在机器或应用程序级别将其关闭,

http://www.page-house.com/blog/2009/04/how-to-disable-crl-checking.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-07
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    相关资源
    最近更新 更多