У меня есть метод CreateContextForGlobalCatalog
, который возвращает PrincipalServer, который подключается к глобальному каталогу:
PrincipalContext = new PrincipalContext(ContextType.Domain,
"forest.name:3268",
"dc=forest,dc=name",
ContextOptions.Negotiate,
userName, password);
Примечание. Это уменьшенная версия метода, обычно имя и контейнер являются параметрами.
В этом контексте я перебираю объекты из базы данных, чтобы получить информацию из глобального каталога в ActiveDirectory:
using (PrincipalContext principalContext = CreateContextForGlobalCatalog())
{
foreach (ADAccount adAccount in accounts){
Log.Debug("Connected server: " + principalContext.ConnectedServer);
// get some information from AD here ...
}
}
Строка Log.Debug
регистрирует подключенный сервер из PrincipalContext. У меня есть тестовая установка, содержащая только виртуальные машины.
Моя проблема: Когда я сейчас отключу этот подключенный сервер (отключите сетевой адаптер), я не получаю исключение и не подключаюсь к новому серверу, но в сообщениях журнала по-прежнему отображается исходный подключенный сервер, хотя сервер больше не доступен.
Есть ли способ как-то обновить свойство подключенного сервера или получить информацию из другого места?