Почему моему приложению 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 часам, в конечном итоге также исправило бы это. Вы только что сделали это сами.