GroupPrincipal.FindByIdentity Unknown COM Exception

2

When deploying this code to a web application where the identity is the app pool user the following code throws an unknown COM exception. The exception is happening when the FindByIdentity method is invoked.

System.Runtime.InteropServices.COMException: Unknown error (0x8000500c)

using (PrincipalContext prinCon = new PrincipalContext(ContextType.Domain))
{
     GroupPrincipal groupPrin = GroupPrincipal.FindByIdentity(prinCon, name);
}

If I change the application pool identity to a domain user this problem is resolved. Which initially leads me to believe it is a permission/security issue. However, this error does not happen on all servers, just some. Additionally, a restart will fix this issue.

So, my question is why would restarting the server fix this issue? And is there a way I make this work without restarting?

I've done a fair amount of googling and haven't come across anyone with the same problem, a few permission similar issues, but none that help solve my problem.

Thanks in advance.

c#
active-directory
asked on Stack Overflow Mar 13, 2012 by user1084440 • edited Mar 13, 2012 by marc_s

2 Answers

1

Changing the app pool account is what worked for me. It was ApplicationPoolIdentity user, but after I changed to Network Service, this error went away and the AD code works fine. I hope this helps.

answered on Stack Overflow Oct 16, 2015 by VG1
0

You didn't specify an identity type, but then you're feeding it a string. Perhaps its not knowing how to search for the string. For example, maybe it is assuming the string is a guid and then attempting to parse it and then failing.

Try something like:

var groupPrin = GroupPrincipal.FindByIdentity(prinCon, IdentityType.Name , name);

Also, try to set your PrincipalContext with some credentials that definitely have authority to perform these operations such as an admin or services account.

answered on Stack Overflow Sep 4, 2012 by Sinaesthetic

User contributions licensed under CC BY-SA 3.0