2010-01-20 5 views
39

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

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

трассировка Page никогда через что-либо до (весь цикл был доли секунды)

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

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

возгласы: D

+1

ли использование ngen.exe помощи с этим типом проблемы? http://msdn.microsoft.com/en-us/library/6t9t5wcf(VS.80).aspx –

ответ

39

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

+1

Я бы пошел с этим ответом. Если вам не хватает ресурсов системы, вы можете просто увеличить значение таймаута. – modernzombie

+0

Благодаря klausbyskov и всей другой помощи - высоко ценится.Я точно знаю, где искать сейчас :) –

5

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

+1

@Taboloo - Используйте сценарий разогрева в пуле приложений. Если приложение является большим и/или занимает много места в памяти/процессоре, то убедитесь, что вы настроили параметры пула для обработки этой дополнительной нагрузки. –

2

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

5

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

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

Ваш другой вариант - принять, что первое поражение страницы дня займет несколько секунд, а затем - usal.

10

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

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

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

Смежные вопросы