我创建了新的DirectoryEntry
,我有异常
(system.runtime.interopservices.comexception)。
上一个DirectoryEntry
已打开正常(directoryEntry
)。
在directoryEntry.Properties["manager"].Value
中是正确的值。
using (DirectoryEntry manager = new DirectoryEntry(Convert.ToString(directoryEntry.Properties["manager"].Value)))
{
contact.ManagersGuid = manager.NativeGuid;
}
你知道哪里可能有问题吗?同一时刻更多打开的目录条目?
答案 0 :(得分:2)
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....
}
}