Мне записали веб-приложение в 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 секунд для загрузки, однако каждый в следующий раз, когда страницу требуют, это быть быстрее. Я полагаю, что в первый раз страницу требуют, она компилирует, и обычно требуется больше времени, чем другой запрос, потому что страница находится в Кэш-памяти. Вопрос здесь состоит в том, почему это, берут с собой время при компиляции страницы в первый раз?
Попытки решить Проблему:
Я пытался сделать следующее:
Однако приложение все еще запускается медленных, но затем это становится быстрее.
Помогите диагностировать и решить эту проблему.
публикует веб-сайт, который выполняет предварительную компиляцию, а не копирует его.
Ваше поведение нормальное.
В дополнение к тому, что сказал скай, вы можете запустить «сценарий разминки» на последнем этапе процесса развертывания. Хотя это не ускорит время, необходимое для первой компиляции, использование такого сценария по крайней мере предотвратит медленный запуск пользователей. Посмотрите здесь пример такого сценария: {{1} } http://programmerramblings.blogspot.com/2008/09/aspnet-site-warmup.html
Другой причиной медленного выполнения самого первого запроса к вашему приложению может быть то, что IIS должен запустить asp. сетевой рабочий процесс во время самого первого запроса. Однако это не должно влиять на первые запросы к другим страницам.
Нет никакого способа обойти это. У вас всегда будет небольшая задержка при первой загрузке по мере компиляции сайта.