突然"未知错误(0x8000500c)"访问Active Directory时抛出

时间:2015-08-20 03:09:29

标签: c# wcf active-directory

我正在" domain1"中的IIS 7上运行WCF(.NET 3.5)服务。该服务在受信任域"域2"的域用户帐户下运行。该服务在与计算机(虚拟机)不同的计算机(虚拟机)上运行,其中" domain1"域控制器正在运行。该服务在生产中正常工作,然后突然出现以下异常

  

消息:未知错误(0x8000500c)System.ServiceModel.FaultException`1 [System.ServiceModel.ExceptionDetail]:未知错误(0x8000500c)(故障详细信息等于ExceptionDetail,可能由IncludeExceptionDetailInFaults = true创建,其值为:   System.Runtime.InteropServices.COMException:未知错误(0x8000500c)

以下代码抛出了上述错误:

private bool IsActiveDirectoryUser(string userName)
        {
            bool isActive = false;
            string[] userNameInfo = userName.Split(new char[] { '\\' });
            if (userNameInfo != null && userNameInfo.Length == 2)
            {
                string domainName = userNameInfo[0];
                string winName = userNameInfo[1];
                PrincipalContext principalContext = new PrincipalContext(ContextType.Domain, domainName);
                PrincipalSearcher principalSearcher = null;
                {
                    UserPrincipal userPrincipal = new UserPrincipal(principalContext);
                    userPrincipal.SamAccountName = winName;
                    principalSearcher = new PrincipalSearcher(userPrincipal);
                    Principal principalUser = principalSearcher.FindOne();
                    if (principalUser != null)
                    {
                        UserPrincipal validUser = ((UserPrincipal)principalUser);
                        if ((validUser.Enabled != null && validUser.Enabled.Value) && !validUser.IsAccountLockedOut())
                            isActive = true;
                    }                    
                }
            }
            return isActive;
        }  

重新启动服务后,异常消失了。我试图在开发环境中重现错误但是徒劳无功。 在线资源提示了两种可能产生0x8000500c错误的方案:

  1. 访问自定义活动目录属性。我不能使用这个

  2. AD兑现问题。如果这是问题,为什么例外     重启服务后不见了。人们会期望缓存     机器重启后没有重新启动过程清除。

  3. 有关如何重现错误的任何想法? 谢谢!

0 个答案:

没有答案