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

ahs*_*ele 11 iis asp.net application-pools iis-7.5 .net-4.0

我一直在阅读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>
Run Code Online (Sandbox Code Playgroud)

他的帖子不清楚以下配置是否会自动启动 ASP.NET 应用程序:

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

<!--...-->
<sites>
     <site name="MySite" id="1">
          <application path="/" serviceAutoStartEnabled="true" />
     </site>
</sites>
Run Code Online (Sandbox Code Playgroud)

这里的区别在于没有指定要启动的类。理想情况下,应用程序将被加载。Application for a Site的文档暗示该serviceAutoStartEnabled属性需要一个serviceAutoStartProvider属性才能工作。但是没有迹象表明如果不提供附加属性会发生什么。

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

Bre*_*bst 10

预热功能,特别是与 IIS 相关的功能要么已停止使用,要么不再针对此开发。Scott 的文章来自 VS2010 之前的版本。他们将整个堆栈重新编写到一个新的 IIS 模块中。

您现在可以使用应用程序初始化模块直接从 IIS 配置所有这些。该模块提供了比您正在研究的预热机制更多的特性和功能。