Как исправить медленное начальное время загрузки на сайте ASP? - PullRequest
0 голосов
/ 20 февраля 2019

Когда я использую инструменты разработчика для анализа времени загрузки сети, я вижу, что мое время до первого байта составляет примерно 8 секунд при загрузке документа Index.aspx.

Мои страницы оптимизированы и никогда не превышают 1,4 мегабайта.Я оптимизировал мои изображения, чтобы быть ниже 100 килобайт.Я прекомпилирую свой сайт для публикации.Я установил debug = "false" в файле web.config.

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

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Нашел проблему.Общий хостинг GoDaddy в Plesk имеет фиксированные 5 минут, пока не отключается рабочий процесс.Когда рабочий процесс отключается, ваш веб-сайт, по сути, переходит в «спящий» режим, и ему требуется много времени для «пробуждения», когда новый посетитель попадает на сайт.

Решение состоит в том, чтобы увеличить трафик или пинговать сайт каждые 5 минут, чтобы он продолжал работать.

0 голосов
/ 20 февраля 2019

Хорошо, я думаю, что вижу проблему.Страницы ASP.NET должны быть скомпилированы JIT, прежде чем они могут отображаться.Поэтому при первом обращении к серверу весь сайт компилируется из двоичного файла CIL .NEt в машинный код.После компиляции этот собственный код кэшируется на сервере в пуле запущенных приложений.Если на сервере некоторое время нет трафика (обычно по умолчанию это 20 минут), тогда кэшированный собственный код очищается, поэтому при следующем обращении к странице компиляция кода занимает некоторое время.Это распространенная проблема с веб-сайтами ASP.NET и приложениями WebForms.Есть несколько способов, которыми вы можете справиться с этим.

1) Ручной метод (не идеальный) - если сайт должен быть доступен только в рабочее время, вы можете сразу же попасть на сайт утром, и каждый последующий запрос будет быстрым 2) Удлинить кэшдлительность, но так как это размещено на GoDaddy / Plex, я не знаю, какой контроль вы будете иметь над AppPool 3) Создайте легкий сервис Windows, единственная цель которого - пинговать веб-сайт каждые 10 - 15 минут, чтобы сохранить кешЖивой и поддерживающий отзывчивость сайта

Вариант 3 выглядит как хакерский взлом, но я использовал этот подход во многих проектах, когда сайт не подвергался постоянному воздействию пользователей в течение дня, но я хотелубедитесь, что ни у одного пользователя не было плохой начальной загрузки страницы.

...