Веб-сайты ASP.NET под IIS 7.5 (Windows 7) работают очень медленно

Я только что установил Windows 7 x64 Ultimate на свой настольный ПК. Я установил IIS, Visual Studio 2008, зарегистрировал ASP.NET и т.д.

У меня есть этот веб-сайт ASP.NET 3.5. Я работаю над запуском EXTREMELY медленно в этом новом IIS. На серверах STA и PROD (Windows 2003 Server), а на моем старом XP/IIS 5.1 все работает плавно.

Страница, которая обычно занимает 1-2 секунды для загрузки, занимает 8 секунд.

Я видел этот пост на форуме IIS. В нем говорится о том, что Vista/7 не объединяет соединения (просто чтобы вы знали, сайт работает локально, но он подключается к SQL Server 2005, размещенному на удаленном сервере).

Кажется, что требуется "начать загрузку" страницы... Я имею в виду, я нажимаю кнопку "Обновить", и она остается в течение нескольких секунд "Ожидание локального хоста"... Затем, когда он получает ответ, он загружает всю страницу как правило,...

У меня нет подсказки, как заставить Win7/IIS7.5 объединять подключения к базе данных.

РЕДАКТИРОВАТЬ: Я создал новое пустое веб-приложение ASP.NET, чтобы проверить, не возникли ли проблемы. Ответ отрицательный, он реагирует быстро, как следует, на пустую страницу по умолчанию. Возможно, что-то связано с соединением БД. Я сделаю еще один тест. Это должен быть способ исправить это...

РЕДАКТИРОВАТЬ 2: Отладка приложения. Я заметил, что задержка возникла ПОСЛЕ выполнения .NET-кода (Page_Load и т.д.)... поэтому задержка, похоже, где-то, когда IIS обслуживает страницу до браузера.

Ответы

Ответ 1

Для тех, у кого есть та же проблема, здесь два возможных решения.

  • 1) Отключение поддержки IPv6 в Firefox (только для Firefox)

Большинство авторов, о которых я узнал, предлагают этот подход как самое быстрое и чистое решение. Что вам нужно сделать, это в основном открыть настройки конфигурации в Firefox (about: config) и изменить значение параметра network.dns.disableIPv6 равным true.

  • 2) Изменение настроек локального хоста в файле hosts (все браузеры)

Это пришло ко мне как идея проверить, где и как я могу вмешиваться в настройки IPv6 на моей машине. Я видел один из комментариев по вышеупомянутым источникам, говорящий, что можно избавиться от проблемы, просто заменив localhost на машинное имя в URL-адресе.

Мне не нужно было долго проверять и видеть, что отключение моего IPv6-поиска в локальном хосте делает то же самое, что отключать IPv6 непосредственно в Firefox.

Что вам нужно сделать, это в основном прокомментировать/удалить эту конкретную строку в файле hosts:

#::1             localhost

Примечание: 1 нотация эквивалентна IPv6 адресу поиска IPv4 127.0.0.1.

Я считаю, что второе решение может быть более подходящим для пользователей, которые не хотят отключать IPv6 в целом, и первый для всех остальных, которые все еще не используют IPv6 в своей обычной работе.

Ответ 2

У меня была одна и та же проблема: чрезвычайно медленная медленная производительность сайта с использованием IIS 7.5 на 64-разрядной версии Windows 7 с Core 2 Duo с 4-гигабайтной оперативной памятью и 3 процессами пула приложений, работающими всего на одном веб-сайте. Вот что я сделал, чтобы вернуть скорость в IIS, проблема решена...

Трюк для меня заключался в том, чтобы запустить IIS с использованием 32-разрядных рабочих, как указано Microsoft на IIS.net, которые вы можете прочитать здесь:

http://learn.iis.net/page.aspx/201/32-bit-mode-worker-processes/

Предоставлено простое решение (я не хочу переписывать его здесь)... Либо вы можете запустить команду из 1 строки из командной строки Windows или 1-строчную команду из Windows PowerShell. Я просто запускал его из командной строки (убедитесь, что вы открыли Command Line или PowerShell в качестве администратора - щелкните правой кнопкой мыши > Запуск от имени администратора).

Спасибо, Марти Макги

Ответ 3

Вы можете попробовать запустить несколько процессов в виде пулов приложений:

  • Открыть IIS
  • Нажмите "Пулы приложений"
  • Щелкните правой кнопкой мыши пул приложений для вашего приложения. и нажмите "Дополнительные параметры"
  • Найдите "Максимальные рабочие процессы" и обновление это до 3 (или количество процессов вы хотите разрешить запуск).

Ответ 4

Я знаю, что в op был запущен IIS 7.5, и это может не относиться к нему, но я публикую это, так как это может помочь другим, выполняющим IIS Express 8.0. У меня была та же проблема, и ни одна из изменений файла IPv6 или хостов для меня не работала. Мой проект asp.net MVC4 был очень медленным после удара F5, чтобы обновить js-изменения на localhost. Это происходило во всех браузерах - Chrome, FF и IE. В конце концов я обнаружил, что IIS Express 8.0 очень медленный при обслуживании js файлов и кажется ошибкой. Если я запустил iisexpress в командной строке и нажал F5, я мог видеть, что каждый файл js занял 4 или 5 секунд для загрузки.

В результате я удалил IIS 8.0 и установил IIS express 7.5, и сразу проблема была исправлена. Вот шаги, которые я выполнил:

IIS Express 8.0, похоже, устанавливается с VS 2012, поэтому, если у вас была новая установка или, возможно, обновление пакета обновления, это может привести к обновлению предыдущей версии IIS Express.