Исключение в записи каталога - PullRequest
1 голос
/ 02 июля 2011

Я создаю новый DirectoryEntry, и у меня есть исключение

(System.Runtime.InteropServices.COMException).

Предыдущая DirectoryEntry открыта в порядке (directoryEntry).

In directoryEntry.Properties["manager"].Value - правильное значение.

using (DirectoryEntry manager = new DirectoryEntry(Convert.ToString(directoryEntry.Properties["manager"].Value)))
{                
   contact.ManagersGuid = manager.NativeGuid;
}

Знаете ли вы, где может быть проблема? Больше открытых записей каталога в тот же момент?

1 Ответ

2 голосов
/ 02 июля 2011

Что хранится в Properties["manager"].Value? Я догадываюсь: это не полный, действительный путь LDAP ......

Если моя догадка верна, то вы не вернете действительное DirectoryEntry для менеджера.

Попробуйте вместо этого код:

string manager = directoryEntry.Properties["manager"].Value.ToString();

// check what is stored in "manager" ! It needs to be a **full** LDAP path
// something like `LDAP://..........`

using (DirectoryEntry manager = new DirectoryEntry(manager))
{
   try
   {
      contact.ManagersGuid = manager.NativeGuid;
   }
   catch(Exception ex)
   {
       // log and handle the exception, if something goes wrong....
   }
}
...