У меня есть веб-приложение, написанное на ASP.Net 3.0 с использованием C #, рабочая машина - Windows Server 2003 с IIS 6.0 и SQL Server 2005.
Структура приложения
Ниже показана структура моего веб-приложения ASP.net:
корневое приложение в IIS (// localhost / es) включает в себя общие страницы, например: главные страницы, тема, пользовательский элемент управления, папка с изображениями.
количество подпроектов в корневом приложении (// localhost / es / sub-project).
удалить web.config в подпроектах
Сборка файлов подпроектов находится в папке bin корневого приложения (свойства подпроекта >> compile >> build output path: .. \ bin \
мое приложение представляет собой трехуровневое веб-приложение (уровень смещения, уровень данных и уровень представления. Кроме того, каждая страница aspx имеет свой код за файлом cs)
Настройки IIS
Пул приложений
Переработка рабочего процесса после «1740 в минутах»
Время простоя рабочих процессов после простоя "20 минут"
Рабочий процесс Ping каждые 30 секунд
Ограничение времени запуска для рабочего процессора "90 секунд"
Ограничение по времени отключения для рабочего процессора "90 секунд"
Конфигурация приложения
Кеш ограничен ASP-файлами в памяти "500"
Кэширование ограниченных ASP-файлов на диске "2000"
Развертывание приложения:
Я публикую веб-приложение со всеми его файлами на рабочем сервере.
Проблема:
Приложение запускается довольно медленно в первый раз, загрузка занимает более 10 секунд, однако каждый раз при следующем запросе страницы это будет быстрее. Я считаю, что при первом запросе страницы она компилируется и обычно занимает больше времени, чем другой запрос,
потому что страница находится в кэш-памяти. Вопрос здесь в том, почему на компиляцию страницы уходит много времени?
Попытки решить проблему:
Я пытался сделать следующее:
- Развертывание копии необходимых файлов на производственном сервере.
- Изменены настройки IIS, изменено время ожидания простоя рабочего процесса
- Отключить трассировку
- Отключить состояние сеанса
- Отключить просмотр состояния страницы
- Установить debug = false в web.config
- Создание подпроекта hello world под корневым приложением, это занимает 5 секунд.
- Создание отдельного веб-приложения hello word, как указано выше, загрузка занимает много времени.
- Удалите код в обработчике событий page_load, но это не повлияло на производительность.
- Публикация только необходимого файла корневого приложения (без кода, написанного в коде позади) и всех файлов в исходном коде подпроекта (код находится в коде позади),
Тем не менее, приложение все еще запускается медленно, но затем оно становится быстрее.
Пожалуйста, помогите диагностировать и решить эту проблему.