Как улучшить производительность при запуске на IIS / ASP.Net - PullRequest
7 голосов
/ 22 апреля 2009

Я использую очень медленный виртуальный хост (имя не указано!), Где производительность диска может быть очень плохой. Таким образом, первое попадание на мои веб-сайты ASP.Net может занять более 1 минуты для загрузки. (После начальной загрузки все в оперативной памяти и нормально.)

Мне интересно, кто-нибудь знает способ проинструктировать IIS для предварительной загрузки сайта? Суть, подражать первому хиту?

Я играл со всеми вещами перед компиляцией, это помогает, но это не заменяет вышесказанное.

Спасибо!

Ответы [ 5 ]

3 голосов
/ 22 апреля 2009

Нужно ли перерабатывать ваше приложение? Все параметры переработки находятся в конфигурации IIS и могут быть настроены в соответствии с вашим приложением.

Идеальным сценарием было бы удалить все повторы приложений, чтобы приложение всегда оставалось загруженным. Рециркуляция будет происходить только в том случае, если файл web.config был изменен или была развернута новая версия приложения.

Если требуется ежедневная переработка, в соответствии с предыдущим ответом, пакетный файл может быть использован для переработки приложения, а также может вызвать iexplore.exe с URL-адресом приложения для его «предварительной загрузки».

0 голосов
/ 22 апреля 2009

При первом запросе страницы из скомпилированного приложения ASP.NET после изменения его сборок обработка занимает намного больше времени, чем при обычном запросе страницы.

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

0 голосов
/ 22 апреля 2009

Какую часть сайта вы хотите предварительно загрузить? Сколько страниц?

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

0 голосов
/ 22 апреля 2009

Если у вашего провайдера может быть способ подключиться к нему при перезапуске веб-сервера, вы можете получить пакетный файл / файл сценария, попадающий на ваш веб-сайт после перезапуска веб-сервера. Вам нужно всего лишь нажать уникальные файлы сборки ASP.NET, чтобы получить эту конкретную сборку в память. Так что если у вас есть 1 сборка, содержащая 10 страниц, просто нажмите одну из страниц. Этого должно быть достаточно. Если у вас более 1 сборки, нажмите 1 страницу в каждой сборке, чтобы загрузить эти сборки в память.

Если вы не можете получить его у своего провайдера, вам нужно подумать о более разумном способе сделать это самостоятельно (например, узнать, когда провайдер сбрасывает веб-сервер, и запланировать задачу на вашем компьютере, чтобы попасть на эти страницы). сами).

0 голосов
/ 22 апреля 2009

Почему у вас не может быть пакетного файла, в котором iis сброшен, и у него есть график выполнения каждый день в определенное время (когда у вас нет пользователей в вашей системе)?

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