GroupPrincipal.FindByIdentity Неизвестное исключение COM - PullRequest
2 голосов
/ 13 марта 2012

При развертывании этого кода в веб-приложении, удостоверяющим личность которого является пользователь пула приложений, следующий код генерирует неизвестное исключение COM.Исключение происходит при вызове метода FindByIdentity.

System.Runtime.InteropServices.COMException: неизвестная ошибка (0x8000500c)

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

Если я изменю приложениеИдентификация пула для пользователя домена эта проблема решена.Изначально это заставляет меня поверить, что это проблема разрешения / безопасности.Однако эта ошибка возникает не на всех серверах, а только на некоторых.Кроме того, перезапуск решит эту проблему.

Итак, мой вопрос: почему перезапуск сервера решил эту проблему?И есть ли способ сделать эту работу без перезапуска?

Я довольно много гуглил и не сталкивался ни с кем с такой же проблемой, с несколькими проблемами с похожими разрешениями, но ни один из них не помог бы решитьМоя проблема.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 16 октября 2015

Изменение учетной записи пула приложений - это то, что мне помогло. Это был пользователь ApplicationPoolIdentity, но после того, как я переключился на Network Service, эта ошибка исчезла, и код AD работает нормально. Надеюсь, это поможет.

0 голосов
/ 05 сентября 2012

Вы не указали тип удостоверения, но затем вы указываете ему строку.Возможно, он не знает, как искать строку.Например, возможно, он предполагает, что строка является guid, а затем пытается ее проанализировать, а затем не удается.

Попробуйте что-то вроде:

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

Также попробуйте установить свой PrincipalContext с некоторымиучетные данные, которые определенно имеют полномочия для выполнения этих операций, такие как учетная запись администратора или службы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...