2012-04-03 51 views
0

使用DirectoryEntry通过端口636连接到DMZ中的已命名Active Directory服务器(即不在域中),然后使用DirectorySearcher提取属性。为什么我的Active Directory服务器使用缓慢的初始响应?

字符串

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可能正在AD服务器上查找CRL上的证书,但没有得到答复。然后,后续查询接受该答案,直到该过程超时,以便下一个查询再次花费22-25秒。

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

我强制要求IIS有一个证书以及这个工作吗?我应该说我正在使用这种模式:http://forums.asp.net/p/907421/1007517.aspx

+0

你见过这个帖子:http://www.velocityreviews.com/forums/t768204-directoryentry-nativeobject-slow-with-asp- net-but-fast-in-exe.html – 2012-04-03 18:35:21

+0

不用了,我只是经历了它。非常相似的情况,但不幸的是,该线程中的建议无效。 – mmcglynn 2012-04-03 18:54:26

+0

值得一试。不幸的是,我没有回答你的问题,但是认为这可能是值得发布的事件,因为这是一个解决方案,或者是别人有问题,而且这个帖子很有帮助。 – 2012-04-03 19:10:45

回答

0

此处不涉及SSL。

什么是serverPath长相?你可能会在某些事情上超时 - 也许是DNS。我会从网络跟踪开始。

+0

刚刚添加了serverPath代码示例。跟踪不会显示服务器可用/不可用? – mmcglynn 2012-04-03 20:19:12

+0

你在域名?如果您在域安全上下文中运行,则不需要左侧部分(服务器:端口)。网络跟踪很可能会告诉你发生放缓的地方。 – 2012-04-04 19:45:32

+0

更新了问题,服务器不在域中。 – mmcglynn 2012-04-04 21:19:18