Как определить ошибки LDAP из исключений, вызванных вызовами C # System.DirectoryService? - PullRequest
2 голосов
/ 21 октября 2010

Я пишу .NET-приложение для запроса к серверу LDAP, и я не могу понять, как смотреть на исключения и выяснить, что произошло на стороне LDAP. Я использую DirectoryServices и пытаюсь избежать всего, что специфично для ActiveDirectory.

Я создаю DirectorySearcher, затем делаю

try
{  
    SearchResult result = searcher.FindOne();
}
catch(Exception e)
{
    // now what?
}

Я ожидаю, что определенные типы ошибок будут возникать на стороне LDAP, например, пользователь не найден, учетная запись отключена и т. Д., И я хотел бы определить эти конкретные ошибки. Существуют ли конкретные виды ожиданий?

Я заметил, что innerException имеет _COMPlusExceptionCode. Является ли это надежным индикатором того, что пошло не так со стороны LDAP? Мне не удалось найти перечисление этих кодов исключений.

Есть предложения?

Ответы [ 2 ]

1 голос
/ 21 октября 2010

Здесь приведен список всех кодов ошибок ADSI здесь , который содержит общие COM и общие ошибки ADSI, а также конкретные коды ошибок LDAP для ADSI 2.0 .

С ошибками LDAP общеизвестно сложно справляться - чаще всего вы просто получаете "сервер не может работать" или что-то в этом роде, без особых объяснений, что заставляет сервер не выполнять свою работу.

0 голосов
/ 21 октября 2010

Теперь позвоните .ToString() и посмотрите на читаемый человеком текст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...