当将此代码部署到身份为应用程序池用户的Web应用程序时,以下代码将引发未知的COM异常。调用FindByIdentity方法时发生异常。
System.Runtime.InteropServices.COMException:未知错误
(0x8000500c)
using (PrincipalContext prinCon = new PrincipalContext(ContextType.Domain))
{
GroupPrincipal groupPrin = GroupPrincipal.FindByIdentity(prinCon, name);
}
如果我将应用程序池标识更改为域用户,则此问题已解决。最初使我相信这是一个许可/安全问题。但是,并非在所有服务器上都发生此错误,仅在某些服务器上会发生。此外,重新启动将解决此问题。
因此,我的问题是为什么重启服务器会解决此问题?有没有一种方法可以使我的工作不重新启动?
我已经进行了大量的谷歌搜索,还没有遇到遇到相同问题的人,也没有遇到类似权限的问题,但是没有一个能解决我的问题。
提前致谢。
最佳答案
更改应用程序池帐户对我有用。它是ApplicationPoolIdentity用户,但在我更改为网络服务后,此错误消失了,AD代码可以正常工作。我希望这有帮助。