Преодолеть (?) Паузу при * вторичном * начальном запуске ASP.Net приложения? - PullRequest
1 голос
/ 05 августа 2009

После развертывания приложения ASP.Net на новом сервере первый пользователь, который запускает приложение, получает длительную паузу, предположительно потому, что приложение выполняет свою первоначальную компиляцию. Однако эта пауза также возникает после истечения времени ожидания приложения и его выгрузки из памяти.

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

Ответы [ 3 ]

3 голосов
/ 05 августа 2009

Это IIS, закрывающий рабочий процесс - по умолчанию время простоя составляет 20 минут. В IIS6 вы можете настроить пул приложений и отключить тайм-аут простоя (на вкладке «Производительность»). В IIS7 это в расширенных настройках .

1 голос
/ 05 августа 2009

Я нашел некоторые рекомендуемые настройки для пулов приложений в IIS. Предполагаемый результат этих настроек - уменьшить количество раз, которое ваше приложение должно пройти через цикл запуска. Эти настройки должны применяться к IIS 6, а также IIS 7:

  • Перезапуск рабочего процесса: Отключить. Используйте это, только если у вас есть несколько веб-сайтов и вы пытаетесь изолировать процессы.
  • Завершение работы рабочих процессов после простоя в течение (время в минутах): Отключить, если вы не используете ресурсы на своем сервере. Если этот параметр отключен, ваш веб-сайт не должен выгружаться, обеспечивая минимальное время запуска вашего сайта.
1 голос
/ 05 августа 2009

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

Можно уменьшить начальное время запуска, предварительно скомпилировав приложение ASP.NET с помощью aspnet_compiler.exe . Это не сократит начальное время запроса до нуля (ему все равно нужно будет создать рабочий процесс и выполнить другие действия по ведению домашнего хозяйства), но это заметно уменьшит его.

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