我正在为大约 10,000 个用户检索一些 LDAP (Active Directory) 属性。我知道 AD 查询不是世界上最快的,但在 19 分钟(几乎完全正确)时,程序停止处理,大约 15 分钟后我收到错误
连接到系统的设备不再运行
在DirectorySearcher.FindOne()
方法上。
我认为我在代码中没有做任何奇怪的事情,但我想知道是否需要将其重新写入 aFindAll()
然后解析该列表。
searcher.Filter = "(sAMAccountName=" + u.LogonName + ")";
string[] properties = new string[]
{
"givenName",
"sn",
"displayName",
"mail",
"physicalDeliveryOfficeName",
"division",
"grpDivision"
};
searcher.PropertiesToLoad.AddRange(properties);
SearchResult result = searcher.FindOne();
它不会每次都停在同一个用户身上,而且它确实会停在用户身上。我检查了他们的属性是否有任何突出的东西,找不到任何不寻常的东西。
正如您可以想象的那样,在 35 分钟的增量中调试会变得非常繁琐,所以我希望有人以前见过这个,或者知道一些隐藏的 Active Directory 连接时间限制。
谢谢!