Наш (достаточно занятый) интранет-сайт в последнее время иногда занимал 2-3 минуты для входа пользователей на рабочий сервер, и мы не смогли выяснить, почему.
Веб-сайт - это веб-сайт верхнего уровня (сопоставленный с IP-адресом), содержащий дополнительно 10 виртуальных каталогов. Веб-сайт содержит как классические страницы ASP, так и страницы ASP.NET, и работает под управлением .NET 4.0 (версия 4.0.30319.235; я полагаю, последняя), и весь сайт работает по протоколу HTTPS (SSL). Он использует проверку подлинности ASP.NET Forms с поставщиком LDAP (LDAP корпорации в том же домене). Это очень простая аутентификация, со строкой соединения LDAP и конфигурацией провайдера в корневом web.config, и элементом управления asp: login, используя определенного провайдера LDAP, на странице входа в систему. Веб-сайт настроен с сопоставлением с подстановочными знаками в IIS, чтобы позволить классическим страницам ASP проходить проверку подлинности с помощью одного и того же процесса входа в ASP.NET. Сеансы по умолчанию "Inproc", не использующие SQLServer или службу состояний.
Периодически, начиная с 3 недель назад, пользователям потребовалось 2-3 минуты для входа на веб-сайт. На сайте есть некоторые страницы, которые не требуют аутентификации, и они все еще работают нормально, и после входа в систему аутентифицированные страницы также работают без каких-либо задержек. Это медленный процесс входа в систему.
Точно такая же конфигурация сайта и код, работающий на сервере разработки и рабочих станциях, никогда не сталкиваются с одинаковыми задержками при аутентификации.
Код входа в систему не менялся более года, и сайт работал под управлением .NET 4.0, вероятно, год; Серверы были обновлены до последней версии .NET в октябре 2010 года. Подстановочные знаки также были созданы более года назад. Медленный вход в систему начался только около 3 недель назад. Отдел веб-серверов не знает о каких-либо изменениях, которые были внесены за это время в веб-серверы и / или сеть.
Хотя на странице входа в систему происходит длительная задержка, я не думаю, что задержка действительно происходит в процессе аутентификации; похоже, что-то вроде установки до этого. Я добавил настройку переменной Session с текущей датой / временем в начало (в событии LogginIn) и конец кода входа в систему, и между этими временами обычно меньше секунды; однако время между нажатием кнопки «Вход» на странице входа в систему и установкой первой из этих переменных сеанса составляет пару минут (примерно 2 минуты и 14 секунд). Я пробовал это с включенной и отключенной буферизацией страницы без разницы во времени.
Одна и та же конфигурация и код установлены в следующих различных средах:
(OK) Сервер разработки: Windows Server 2003 с пакетом обновления 2 (SP2), 64-разрядная (32-разрядная IIS) в режиме SSL
(ОК) Сервер разработки: Windows Server 2008 R2 64-разрядная (32-разрядная IIS) в режиме SSL
(ОК) dev. рабочие станции: Windows 7 64-разрядная (32-разрядная IIS), НЕ работает SSL
(иногда медленно) Подготовка веб-сервера: 32-разрядная версия Windows Server 2003 с пакетом обновления 2 (SP2) в режиме SSL
(иногда медленно) Рабочий веб-кластер: 32-разрядная версия Windows Server 2003 с пакетом обновления 2 (SP2) в режиме SSL
То есть на серверах разработки и рабочих станциях я не могу вызывать одну и ту же медлительность, независимо от того, что я пытаюсь: сброс IIS, переработка пула приложений, обновление web.config и т. Д.
Серверы разработки используют самозаверяющие сертификаты для SSL; промежуточные и производственные серверы используют «официальные» (Verisign) сертификаты. Производственные веб-серверы также используются для других веб-сайтов (и все остальные веб-сайты все еще работают в .NET 2.0), но ни один из этих других сайтов не использует аутентификацию LDAP. На всех машинах (производство и разработка) установлены обновления Windows.
Я могу воспроизвести проблему на промежуточных или производственных серверах, принудительно перезапустив приложение (например, обновив web.config) или запросив сброс IIS, или (на промежуточном сервере) ожидая более 20 минут безактивность (я думаю, что время жизни пула приложений по умолчанию заканчивается).
Мы проверили следующее:
Раздел "machineKey" в каждом файле web.config ввесь сайт идентичен
Пул приложений для сайта установлен на .NET 4.0, и никакие другие сайты не используют такой же пул приложений
Идентификационный номер пула приложений: «СЕТЕВАЯ СЛУЖБА»
Мы пробовали следующее в рабочей среде без изменений в случайной задержке входа в систему:
Добавление connectionProtection = "None" в конфигурацию провайдера LPAP
Добавление «applicationName» в конфигурацию провайдера LDAP
Добавление номера порта(йe SSL / защищенный номер порта) к строке подключения LDAP
Мы просмотрели журналы событий Windows и IIS на промежуточном и рабочем серверах, не найдя очевидной связи с проблемой.,Единственная возможная ошибка, которая иногда возникает, - это следующее (оно регистрировалось иногда примерно за секунду до успешного входа в систему, а не во время нажатия кнопки «Вход»), однако это также может быть связано с тем, что ранеевремя сеанса в системе истекло:
Код события: 4006
Сообщение о событии: сбой проверки учетных данных участника.
Информация о приложении:
Application domain: /LM/W3SVC/ [...]
Trust level: Full
Application Virtual Path: /
Информация о процессе:
Process name: w3wp.exe
Account name: NT AUTHORITY\NETWORK SERVICE
Может кто-нибудь предложить какие-либо другие предложения по устранению неполадок или потенциальные проблемы конфигурации, которые следует проверить или изменить?