ActiveDirectory erro 0x8000500c ao atravessar propriedades
Eu recebi o seguinte trecho SomeName
/SomeDomain
contém valores reais no meu código)
var entry = new DirectoryEntry("LDAP://CN=SomeName,OU=All Groups,dc=SomeDomain,dc=com");
foreach (object property in entry.Properties)
{
Console.WriteLine(property);
}
Imprime OK para as primeiras 21 propriedades, mas falha com:
COMException {"Unknown error (0x8000500c)"}
at System.DirectoryServices.PropertyValueCollection.PopulateList()
at System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName)
at System.DirectoryServices.PropertyCollection.PropertyEnumerator.get_Entry()
at System.DirectoryServices.PropertyCollection.PropertyEnumerator.get_Current()
at ActiveDirectory.Tests.IntegrationTests.ObjectFactoryTests.TestMethod1() in MyTests.cs:line 22
Por quê? Como posso evitá-lo?
Atualiza
É um atributo personalizado que falh
Eu tentei usarentry.RefreshCache()
eentry.RefreshCache(new[]{"theAttributeName"})
antes de enumerar as propriedades (o que não ajudou
Update2
entry.InvokeGet("theAttributeName")
funciona (e semRefreshCache
).
lguém pode explicar o porqu
Update3
Funciona se eu fornecer o FQDN para o item:LDAP://srv00014.ssab.com/CN=SomeName,xxxx
Recompens
Estou procurando uma resposta que aborde o seguinte:
Por quêentry.Properties["customAttributeName"]
falha com a exceção mencionadaPor quêentry.InvokeGet("customAttributeName")
trabalhA causa da exceçãoComo colocar os dois trabalhando