Выполнение приложения ASP.NET замедляется в первый раз

Мне записали веб-приложение в ASP.Net 3.0 с помощью C#, производственная машина является Windows Server 2003 с IIS 6.0 и SQL-сервером 2005.

Структура приложения

Следующие шоу структура моего веб-приложения ASP.net:

корневое приложение в IIS (//localhost/es) включает общие страницы, например: основные страницы, тема, пользовательский элемент управления, папка изображений. количество подпроектов в соответствии с корневым приложением (//localhost/es/sub-project). удалите web.config в подпроектах, собираются, файлы подпроектов находится под папкой мусорного ведра корневого приложения (свойства подпроекта>> компиляция>> выходной путь сборки:..\bin\мое приложение является 3-уровневым веб-приложением (уровень Biasness, уровень Data и Уровень представления. Кроме того, каждая aspx страница имеет свой код позади cs файла),

Настройки IIS

Пул приложений, Перерабатывающий Рабочий процесс после "1740 в минутах" Неактивные рабочие процессы тайм-аута будучи неактивным "20 в минутах", Проверяет с помощью ping-запросов рабочий процесс каждые "30 секунды"
Запустите ограничение по времени для переработчика рабочего "90 Секунд" ограничение по времени Shoutdown для переработчика рабочего "90 Секунд"

Конфигурация приложения
Кэш ограничил файлы ASP в памяти "500"

Кэш ограничил файлы ASP на диске "2000"

Развертывание приложения:

Я публикую веб-приложение со всеми его файлами к рабочему серверу.

Проблема:

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

Попытки решить Проблему:

Я пытался сделать следующее:

  • Развертывание копии необходимых файлов к рабочему серверу.
  • Измененные настройки IIS, измененное закрытие тайм-аута Idle рабочего процесса
  • Выключите трассировку
  • Выключите состояние сеанса
  • Отключите состояние отображения страницы
  • Набор debug=false в web.config
  • Создавая привет мировой подпроект в соответствии с корневым приложением, требуется 5 секунд.
  • При создании отдельный привет веб-приложение слова, как выше его занимает много времени для загрузки.
  • Удалите код в page_load обработчике событий, но он не влиял на производительности.
  • Опубликуйте только необходимый файл корневого приложения (никакой код, написанный в коде позади), и весь файл в исходном коде подпроекта (код находится в коде позади),

Однако приложение все еще запускается медленных, но затем это становится быстрее.

Помогите диагностировать и решить эту проблему.

6
задан Zahraa 8 February 2010 в 11:46
поделиться

3 ответа

публикует веб-сайт, который выполняет предварительную компиляцию, а не копирует его.

Ваше поведение нормальное.

2
ответ дан 17 December 2019 в 04:46
поделиться

В дополнение к тому, что сказал скай, вы можете запустить «сценарий разминки» на последнем этапе процесса развертывания. Хотя это не ускорит время, необходимое для первой компиляции, использование такого сценария по крайней мере предотвратит медленный запуск пользователей. Посмотрите здесь пример такого сценария: {{1} } http://programmerramblings.blogspot.com/2008/09/aspnet-site-warmup.html

Другой причиной медленного выполнения самого первого запроса к вашему приложению может быть то, что IIS должен запустить asp. сетевой рабочий процесс во время самого первого запроса. Однако это не должно влиять на первые запросы к другим страницам.

5
ответ дан 17 December 2019 в 04:46
поделиться

Нет никакого способа обойти это. У вас всегда будет небольшая задержка при первой загрузке по мере компиляции сайта.

-4
ответ дан 17 December 2019 в 04:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: