Преодолеть паузу компиляции (?) на * вторичном * начальном ASP.Запуск сетевого приложения?

StackOverflow https://stackoverflow.com/questions/1229613

  •  22-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

Другие советы

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

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

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

  • Перерабатывать Рабочий процесс: Отключить.Используйте это только в том случае, если у вас несколько веб-сайтов и вы пытаетесь изолировать процессы.
  • Завершение работы рабочих процессов после простоя в течение (времени в минутах): Отключите, если только вы не предоставляете общий доступ к ресурсам на своем сервере.Если этот параметр отключен, ваш веб-сайт не должен выгружаться, гарантируя, что время запуска вашего сайта будет как можно меньше.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top