Возможные причины ошибок «Сервер не работает» в LDAP - PullRequest
0 голосов
/ 30 июня 2011

Я искал в Google несколько дней, но не могу найти ни одного ответа.Неделю назад мы провели миграцию сервера.У нас есть кластерная среда, в которой следующий код работает на одном сервере, но не на другом (и я не могу заставить его работать на моей локальной машине для нашей некластерной среды разработки):

 rootDSE = New DirectoryEntry("LDAP://nonfullyqualifieddomain/RootDSE")

Если япопробуйте выше, я получаю общую ошибку, упомянутую в заголовке вопроса (опять же, она работает на одном из серверов, но не на другом).

Однако, когда я делаю это, создается объект DirectoryEntry:

 rootDSE = New DirectoryEntry("LDAP://fully.qualified.domain", adUserId, adPassword, AuthenticationTypes.Secure)

Исходя из того, что я вижу в Интернете, я думаю, что это как-то связано с разрешениями или конфигурациями, но я не знаком со стороной администрирования сервера приложения.Любые предложения будут оценены!

Ответы [ 2 ]

1 голос
/ 04 июля 2011

Каждый раз, когда я получал «Сервер не работает» в одной из инфраструктур, над которыми я работал, это было потому, что я пытался подключить сервер LDAP по неверному адресу.Это произошло из-за:

  • Плохое разрешение DNS
  • Плохое разрешение Netbios
  • Брандмауэрная фильтрация

Мой совет использовать разрешение DNSдля рабочей среды и среды тестирования, а также для использования прямого IP-адреса для среды разработки.

Убедитесь, что порт 389 (или 636) привязан к используемому вами адресу, и вы можете к нему подключиться.В Windows Server 2008 LDP.EXE - хороший инструмент для проверки соединения LDAP (представлен в комплекте ресурсов W2K3).На компьютере разработчика я использую Apache Directory Studio , которая также является хорошим инструментом для проверки подключения и содержимого Каталога.

0 голосов
/ 14 ноября 2011

Я столкнулся с той же ошибкой в ​​одном из наших устаревших приложений.Это проблема утечки памяти.Чтобы обойти это, я позаботился о том, чтобы код избавлялся от записи Справочника, как только она была завершена.Что-то вроде:

using (System.DirectoryServices.DirectoryEntry OUEntry
   = new DirectoryEntry(domain, userName, userPassword))
{
    // your code here
}
...