Вопрос: Альтернатива пулу приложений startMode = "AlwaysRunning"


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

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

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


7
2018-06-14 21:47


Источник




Ответы:


Кажется, что то же самое. По-видимому, поскольку 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, я бы сказал, просто используйте встроенные функции.

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


6
2018-06-16 12:30



Это чертовски стыдно, что они создали эту функцию на уровне applicationHost.config. Он должен быть на уровне web.config. - Chris Marisic


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>

3
2017-11-11 11:53