我正在开发一个 SharePoint 应用程序,它需要来自指定 Windows Server 2003 Active Directory 组织单位的用户。
首先,我不关心 DirectoryServices 对象上的“Dispose”和“Close”操作。在这一点上,检索操作快速而成功。
但这在 2ish 尝试后导致“服务器无法运行”错误。而这个错误会使整个应用程序运行得更糟,就像停止其他 AD 操作一样。
然后,我通过在每个 DirectoryEntry、DirectorySearcher 和 SearchResultCollection 对象上添加 using 语句来纠正此错误。
然后我达到了一个点,我不再收到“服务器无法运行”错误。但是,当我尝试使用 DirectorySearcher.FindAll 方法从 AD 检索用户 1 次或更多次时,第一个操作快速且成功,其他操作更慢但成功。它有点需要超时的持续时间。你能帮我解决一下这个减速的情况吗?
这是示例代码:
using (DirectoryEntry directoryEntry = new DirectoryEntry(connectionString, userName, password))
{
using (DirectorySearcher search = new DirectorySearcher(directoryEntry))
{
search.SearchScope = SearchLevel.OneLevel;
search.ReferralChasing = ReferralChasingOption.All;
search.Filter = filter;
search.SizeLimit = 200;
//Limits the property count for search result
SetUserDirectorySearcherPropertiesToLoad(search);
using (SearchResultCollection result = search.FindAll())
{
foreach (SearchResult searchResult in result)
{
// Get user attributes
}}}}
提前致谢