Прежде всего: я действительно запутался в этой проблеме, поэтому извините, если описание ниже нечеткое.
Мой сайт написан на .NET4, ASP.NET WebForms и работает в разных средах, некоторые из них - IIS6, некоторые - IIS7 (или 7.5). Некоторые используют SSL, некоторые нет.
Всякий раз, когда я размещаю в IIS7, он работает нормально, независимо от браузера или HTTP / HTTPS. Когда я размещаю его в IIS6, у меня сильно падает производительность для Internet Explorer 7/8 (т.е. сайт действительно очень медленный). Но только для сайтов, не использующих SSL (т.е. HTTP). Когда SSL включен, сайт работает намного быстрее. Сайты IIS6 размещены на Windows Server 2003 x64 с пакетом обновления 2.
Эти проблемы начались, когда я установил .NET4 и обновил сайт для использования .NET4. 32-разрядная версия .NET4 используется, даже если сервер x64.
При использовании fiddler / dynaTrace и подобных инструментов мы понимаем, что ПЕРЕДАЧА файла .aspx намного медленнее в IE7 и IE8 (IIS6 не использует SSL). Нормальное время передачи составляет около 500 мс, но при использовании IE7 на сайте IIS6 без SSL у нас время составляет около 10-20 секунд (в 20-40 раз больше). Когда у нас большое время загрузки, вы действительно можете видеть изображение за изображением на экране. Сначала рисуется раскрывающийся список, затем текст в нем и, наконец, CSS, выравнивающий текст в раскрывающемся списке. Страница отображается "постепенно" очень медленно, поэтому вы можете легко следить за порядком отображения.
У нас есть некоторые признаки того, что причиной может быть сжатие, поскольку IIS7 по умолчанию включает некоторое сжатие, которого не делает IIS6.
К сожалению, я не могу предоставить никаких ссылок или демонстраций этого поведения, поскольку это закрытая система.
1) Каким образом включение SSL может сократить время передачи .aspx? Он отправляется большими кусками или может быть даже одним большим куском?
2) В чем может быть причина того, что IIS7 намного быстрее, чем IIS6, и можем ли мы настроить для него нашу настройку IIS6?
3) Есть идеи, что может быть не так с нашей настройкой IIS6 или как я могу улучшить производительность?
Еще раз - извините за расплывчатый вопрос, но все идеи / советы / предложения приветствуются.
Звучит как интересный вызов. Я не видел ничего подобного и не могу представить себе разницу между http и https, которая могла бы вызвать это.
Лучший способ устранить эту неполадку - разбить ее на самые мелкие возможные части. Некоторые возможные предложения:
Большое спасибо Скотту Форсайту за помощь и советы. Проблема была решена, и немного смущает, что она была вызвана кодом в приложении / на сайте.
Проблема заключалась в вызове Response.Buffering = false в Page.OnInit. Я не уверен, почему это было изменено с true на false некоторое время назад, но я буду исследовать дальше. Правильным решением, вероятно, будет использование Response.Flush (), когда клиенту отправляется большое содержимое.
Я видел несколько связанных сообщений об этом здесь:
http://bytes.com/topic/asp-classic/answers/59607-response-buffer-iis-6-0-a (который ссылается на этот KB: http://support.microsoft.com/?id=840875)
http://technet.microsoft.com/en-us/library/bb727078.aspx (Совет 14: используйте буферизацию ответа)
http://msdn.microsoft.com/en-us/library/ff647787.aspx