Медленная загрузка первой страницы на сайте asp.net - PullRequest
40 голосов
/ 20 января 2010

Время от времени (всегда после длительного простоя, например, в течение ночи), когда я захожу на сайт, созданный с использованием asp.net - загрузка страницы занимает около 15 секунд (15 секунд, прежде чем я вижу какой-либо прогресс) , то страница появляется быстро).

Дальнейшие страницы на этом сайте, или обновления, как обычно, быстрые - они также бывают быстрыми на других машинах, только первая, кажется, получает «хит».

Трассировка страницы никогда ничего не происходит (весь цикл был доли секунды)

Итак, мой вопрос, где еще мне искать? Возможно IIS? Или это все еще может быть мое приложение asp.net, и я просто искал подсказки в неправильном месте (след)?

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

ура: D

Ответы [ 6 ]

39 голосов
/ 20 января 2010

Пул приложений IIS отключается через 30 минут бездействия.После этого, когда вы делаете запрос, IIS в основном должен снова запустить веб-сайт, что приводит к описанному вами поведению.Вы можете изменить время простоя вашего сайта в iis, чтобы избежать этого.

21 голосов
/ 20 января 2010

Вы также можете ознакомиться с функцией Автозапуск платформы 4.0.

10 голосов
/ 26 мая 2010

Если вы используете IIS 7, существует плагин IIS для вызова приложения Warm Up, который поможет

Я написал сообщение в блоге о своем опыте использования здесь (не знаю, разрешено ли мне публиковать в моем собственном контенте?):

http://www.diaryofaninja.com/blog/2010/05/06/keep-your-aspnet-websites-warm-and-fast-247

5 голосов
/ 20 января 2010

Далее ответы, в которых указано, что IIS отключит работу, когда ваш сайт вернется к вашему Application.OnStart будет запущен (в пределах вашего global.asa). Если вы выполняете здесь много работы, это может замедлить ваше приложение. Другие вещи, происходящие на всех ваших кешах, будут пустыми, все ваше соединение с БД будет отключено.

Это поведение можно настроить в IIS, если у вас нет доступа к настройкам IIS, и вы можете обойти его через каждые 10 минут с помощью скрипта или специальной страницы с мета-обновлением.

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

5 голосов
/ 20 января 2010

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

2 голосов
/ 20 января 2010

Я сталкивался с той же проблемой в прошлом. Мне так и не удалось разобраться в проблеме, но я подозревал, что виновниками были пулы приложений IIS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...