我正在为我的应用程序使用Novell.Directory.Ldap.NETStandard 2.3.8和.Net Core 2.0。
当我在调试模式下使用以下代码进行搜索时,总是得到正确的结果/响应。但是,当我在没有调试的情况下进行搜索时,搜索将返回不同的结果。 观察:如果我在while循环中添加一些延迟以获取下一个条目,那么它也可以实时正常运行。
LdapVirtualListControl vlv = null;
LdapSortKey[] keys = new LdapSortKey[1];
keys[0] = new LdapSortKey("******");
sort = new LdapSortControl(keys, true);
vlv = new LdapVirtualListControl(1, 0, 10, 0);
LdapSearchConstraints searchConstraints = new LdapSearchConstraints();
searchConstraints.BatchSize = 1;
searchConstraints.MaxResults = 10000;
List controlArr = new List();
controlArr.Add(sort);
controlArr.Add(vlv);
searchConstraints.setControls(controlArr.ToArray());
LdapSearchResults lsc = ldapConnection.Search("---SearchBaseDn----",
LdapConnection.SCOPE_SUB,
"---filter----",
"---attributes to retrieve----",
false,
searchConstraints);
while (lsc.hasMore())
{
LdapEntry nextEntry = null;
try
{
nextEntry = lsc.next();
}
catch (LdapException e)
{
// Exception is thrown, go for next entry
continue;
}
}