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


8

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

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

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

Ответы:


6

Похоже, то же самое. Похоже, поскольку 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 Series) .

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

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


6
Жаль, что они создали эту функцию на уровне applicationHost.config. Вместо этого он должен быть на уровне web.config.
Крис Марисик

4

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>
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.