Я использую следующий код C # в коде веб-формы, развернутой в пуле приложений ASP.NET 4 (4.0.30319) на Server1 и Server2.
PrincipalContext pc = new PrincipalContext(ContextType.Domain, "testnet.testad.org:636", "dc=testnet,dc=testad,dc=org");
bool validated = pc.ValidateCredentials(username, password, ContextOptions.Negotiate);
Server1 работает: windows server 2003 SP2
IIS 6.0
ASP.NET версии 4.0.30319
Для аутентификации Server1 требуется от 30 до 60 секунд в зависимости от параметров.
(Примечание: при использовании обычного ldap аутентификация выполняется немедленно, без задержки)
Server2 работает: windows server 2008 SP2
IIS 7.0
ASP.NET версии 4.0.30319
Выполняя тот же самый код, что и Server1, Server2 аутентифицируется почти мгновенно.
(Я также пробовал код на другом сервере IIS 7.0 с теми же результатами)
Поэтому я считаю, что код в порядке, поэтому я спрашиваю об этом на сервере.
Кто-нибудь сталкивался с этой проблемой раньше?
Есть ли что-то, что я могу исправить или настроить по-другому на Server1, чтобы уменьшить время аутентификации, чтобы оно соответствовало Server2?
Спасибо за любую помощь в этом.
.................................................. .................................................. ..........................................
[Обновить]
Я включил wirehark при выполнении запроса аутентификации ldaps.
Я создал файл, содержащий все запросы более 636.
Его можно посмотреть здесь: Server1 636 трафик
Наибольшие разрывы обнаруживаются между:
№ 1949 в 1.115583 сек - № 06788 в 14.501754 сек
и
№ 6803 при 14,64297 сек - № 11742 при 27,921379 сек.
Весь другой трафик на этом порту происходит в течение той же секунды.
ПРИМЕЧАНИЕ. Примерно такой же объем трафика на Server2, но все это происходит в течение 2-3 секунд.
Его можно посмотреть здесь: Server2 636 трафик
Попробуйте бежать монитор процесса чтобы узнать, если вам отказано в доступе:
C: \ Documents and Settings \ All Users \ Application Data \ Microsoft \ Crypto \ RSA \ MachineKeys
Если это так, предоставьте учетной записи службы доступ для чтения.