Почему моему приложению ASP.NET, работающему как пользователь домена, требуется перезапуск, чтобы использовать PrincipalContext после проблемы с Active Directory?

У меня есть приложение ASP.NET 4.5, которое работает в пуле приложений с определенным именем пользователя и паролем домена. Он работал хорошо в течение нескольких месяцев. Несколько дней назад возникла проблема с Active Directory, детали которой мне неизвестны, но во время проблемы пользователи моего приложения сообщили, что им не удалось использовать приложение.

Проблема с AD в конечном итоге была "решена", но пользователи все еще не могли использовать приложение, пока я не переработал пул приложений.

Перед переработкой я поймал это исключение первого шанса:

System.Runtime.InteropServices.COMException (0x8007052E): The user name or password is incorrect.

   at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)

После переработки я перестал видеть это исключение.

Само исключение было сгенерировано вызовом PrincipalContext.FindByIdentity это терпело неудачу, пока я не переработал пул приложений.

С какой стати перезапуск пула приложений может изменить поведение PrincipalContext если учетные данные пула приложений не изменились?

1 ответ

Пулы приложений, использующие учетные записи домена, работают с контроллерами домена AD для проверки пользователя домена.

Поскольку мы не знаем, что произошло в вашей компании с AD, мы не можем однозначно сказать, почему. Мы можем только предположить или предположить, что это, по-видимому, послужило причиной неправильной работы.

Сброс пула после того, как AD был счастлив, снова сбросил это волшебство. Волшебство - как я на самом деле не знаю под капотом механики, но пул приложений полагается на AD для аутентификации пользователя домена.

Время перезарядки пула приложений по умолчанию, равное 29 часам, в конечном итоге также исправило бы это. Вы только что сделали это сами.

Другие вопросы по тегам