Назад | Перейти на главную страницу

Альтернатива пулу приложений startMode = «AlwaysRunning»

Если веб-приложение запрашивает настройку самого себя, его пул приложений должен быть настроен в applicationHost.config как:

<add name="AppPool" managedRuntimeVersion="v4.0" startMode="AlwaysRunning" />

Можно ли добиться того же результата, просто запрашивая страницу с сервера каждую минуту? Или установка этого значения startMode имеет и другие последствия?

Вроде то же самое. По-видимому, поскольку Microsoft увидела, что разработчики должны это делать, они создали эту новую функцию, чтобы автоматически справиться с этим.

Затем [разработчики] либо разрабатывают собственные сценарии для отправки ложных запросов в приложение, чтобы периодически «разбудить его» и выполнить этот код до того, как клиент попадет в него, либо просто заставят неудачливого первого клиента, который обращается к приложению, ждать, пока эта логика завершится, прежде чем обработка запроса (что может привести к длительной задержке для них).

ASP.NET 4 поставляется с новой функцией, называемой «автозапуск», которая лучше подходит для этого сценария, и доступна, когда ASP.NET 4 работает на IIS 7.5 (который поставляется с Windows 7 и Windows Server 2008 R2). Функция автоматического запуска обеспечивает управляемый подход к запуску рабочего процесса приложения, инициализации приложения ASP.NET и последующему принятию HTTP-запросов.

От Скотта Гатри Автозапуск приложений ASP.NET (серии VS 2010 и .NET 4.0).

Поэтому, если вы не используете IIS 7.5, я бы сказал, что просто используйте встроенные функции.

(И спасибо; я не знал об этой функции, но определенно могу подумать о сайтах, которые я разрабатываю для этих целей).

IIS 7.5 включает дополнительный флаг на уровне сайта или приложения, называемый preloadEnabled. Установка значения true создаст поддельный запрос на разогрев сайта. Он должен использоваться вместе с autoStart.

автоматический старт

<add name="{yourapppoolname}" autoStart="true" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" startMode="AlwaysRunning" />

preloadEnabled

<site name="YOURSITENAMEHERE" id="4″>
  <application path="/" applicationPool="YOURAPPPOOL" preloadEnabled="true">
  <virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\YOURSITENAME" />
  </application>
</site>