调用UserPrincipal.FindByIdentity(0x80005000)时出现.Net ComException

时间:2019-10-02 15:16:47

标签: c# .net iis userprincipal

我们的应用程序使用的是运行在IIS 8上的.Net Web API。在过去的几天中,正好是上午8点(即用户开始访问该应用程序的时间),我们在尝试获取用户身份时遇到了以下异常。在应用程序池刷新后即可使用,直到第二天我们都看不到任何异常。有人可以帮我吗

System.Runtime.InteropServices.COMException (0x80005000): Unknown error (0x80005000)
   at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
   at System.DirectoryServices.DirectoryEntry.Bind()
   at System.DirectoryServices.DirectoryEntry.get_AdsObject()
   at System.DirectoryServices.PropertyValueCollection.PopulateList()
   at System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName)
   at System.DirectoryServices.PropertyCollection.get_Item(String propertyName)
   at System.DirectoryServices.AccountManagement.PrincipalContext.DoLDAPDirectoryInitNoContainer()
   at System.DirectoryServices.AccountManagement.PrincipalContext.DoDomainInit()
   at System.DirectoryServices.AccountManagement.PrincipalContext.Initialize()
   at System.DirectoryServices.AccountManagement.PrincipalContext.get_QueryCtx()
   at System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithTypeHelper(PrincipalContext context, Type principalType, Nullable`1 identityType, String identityValue, DateTime refDate)
   at System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithType(PrincipalContext context, Type principalType, IdentityType identityType, String identityValue)
   at System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(PrincipalContext context, IdentityType identityType, String identityValue)

代码:

using (var user = UserPrincipal.FindByIdentity(UserPrincipal.Current.Context, IdentityType.SamAccountName, userName) ??

                              UserPrincipal.FindByIdentity(UserPrincipal.Current.Context, IdentityType.UserPrincipalName, userName))

            {
                return user == null ? null : new WindowsIdentity(user.UserPrincipalName);
            }

0 个答案:

没有答案