自动启动 ASP.NET 应用程序是否需要 serviceAutoStartProvider 属性?

自动启动 ASP.NET 应用程序是否需要 serviceAutoStartProvider 属性?

我一直在读Scott Guthrie 关于自动启动 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属性才能起作用。但没有迹象表明如果没有提供附加属性会发生什么。

  • 我是否正确阅读了文档?
  • 是否serviceAutoStartProvider需要指定才能使用serviceAutoStartEnabled
  • 如果没有serviceAutoStartProvider指定会发生什么?

答案1

Warm-Up 功能,特别是与 IIS 相关的功能要么已停用,要么不再针对其进行开发。Scott 的文章来自 VS2010 之前。他们将整个堆栈重写为新的 IIS 模块。

现在,您可以使用应用程序初始化模块。该模块提供的特性和功能比您正在研究的预热机制更多。

相关内容