我一直在读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 模块。
现在,您可以使用应用程序初始化模块。该模块提供的特性和功能比您正在研究的预热机制更多。