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

Требуется ли атрибут serviceAutoStartProvider для автоматического запуска приложения ASP.NET?

Я читал Сообщение Скотта Гатри об автозапуске приложений ASP.NET, в котором приведены примеры настройки автоматического запуска приложения ASP.NET 4.0.

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

<!--...-->
<sites>
     <site name="MySite" id="1">
          <application path="/" serviceAutoStartEnabled="true"
              serviceAutoStartProvider="PreWarmMyCache" />
     </site>
</sites>

<!--...-->
<serviceAutoStartProviders>
     <add name="PreWarmMyCache" type="PreWarmCache, MyAssembly" />
</serviceAutoStartProviders>

Из его сообщения неясно, будет ли следующая конфигурация автоматически запускать приложение ASP.NET:

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

<!--...-->
<sites>
     <site name="MySite" id="1">
          <application path="/" serviceAutoStartEnabled="true" />
     </site>
</sites>

Разница здесь в том, что для запуска не указан класс. В идеале приложение просто загружается. Документация по Заявка на сайт означает, что serviceAutoStartEnabled атрибут требует serviceAutoStartProvider атрибут к работе. Но нет никаких указаний на то, что произойдет, если дополнительный атрибут не указан.

Функции Warm-Up, особенно связанные с IIS, были либо прекращены, либо больше не разрабатывались. Статья Скотта была написана до VS2010. Они переписали весь стек в новый модуль IIS.

Теперь вы можете настроить все это прямо из IIS, используя Модуль инициализации приложения. Модуль предоставляет больше возможностей и функций, чем механизм разминки, который вы изучаете.