ASP.NET веб-сайты под управлением IIS 7.5 (Windows 7) работают крайне медленно

StackOverflow https://stackoverflow.com/questions/2375494

Вопрос

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

У меня есть этот веб-сайт ASP.NET 3.5, над которым я работаю, который работает очень медленно в этом новом 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) Отключение поддержки IPv6 в Firefox (только для Firefox)

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

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

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

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

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

#::1             localhost

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

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

Другие советы

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

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

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

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

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

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

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

Я знаю, OP был запущен IIS 7.5, и это может не относиться к нему, но я размещаю это так, как это может помочь другим бежать IIS Express 8.0. Отказ У меня была такая же проблема, и ни один из изменений файлов IPv6 или Hosts не работал для меня. Мой проект 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top