Я разрабатываю приложение SharePoint, которому нужны пользователи из указанного организационного подразделения Windows Server 2003 Active Directory.
Во-первых, меня не беспокоили операции Dispose и Close над объектами DirectoryServices. На этом этапе операции извлечения были быстрыми и успешными.
Но это вызывало ошибку «Сервер не работает» после двух попыток. И эта ошибка ухудшает работу всего приложения, как и остановка других операций AD.
Затем я исправил эту ошибку, добавив операторы using во все объекты DirectoryEntry, DirectorySearcher и SearchResultCollection.
Затем я дошел до того, что больше не получаю ошибку «Сервер не работает». Но когда я пытаюсь получить пользователей из AD 1 или более раз с помощью метода DirectorySearcher.FindAll, первый работает быстро и успешно, другие - медленнее, но успешно. Это как бы занимает время тайм-аута. Не могли бы вы помочь мне с моей ситуацией по поводу этого замедления?
Вот пример кода:
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
}}}}
заранее спасибо