如果一个Web应用程序调用它自己的应用程序池进行设置,在applicationHost.config中configuration为:
<add name="AppPool" managedRuntimeVersion="v4.0" startMode="AlwaysRunning" />
每分钟只需要从服务器请求一个页面就能达到同样的效果吗? 或者设置startMode为这个值还有其他的影响吗?
看起来是一样的。 貌似,由于微软看到开发人员必须这样做,他们创build了这个新function来自动处理这个。
然后,开发人员可以devise自定义脚本来向应用程序发送虚假请求,以便定期“唤醒”并在客户点击之前执行该代码,或者只是让这个不幸的第一个访问应用程序的客户等待这个逻辑完成处理请求(这可能导致他们长时间的延迟)。
ASP.NET 4提供了一个名为“自动启动”的新function,可以更好地解决这种情况,并且在ASP.NET 7.5(随Windows 7和Windows Server 2008 R2附带)上运行ASP.NET 4时可用。 自动启动function为启动应用程序工作进程,初始化ASP.NET应用程序,然后接受HTTP请求提供了一种受控方法。
从Scott Guthrie的自动启动ASP.NET应用程序(VS 2010和.NET 4.0系列) 。
所以,除非你不使用IIS 7.5,否则我只是使用内置的function。
(谢谢,我不知道这个function,但是可以肯定的是我开发的网站可以使用它。)
IIS 7.5在站点或应用程序级别上包含一个名为preloadEnabled的附加标志。 将其设置为true会创build一个虚拟请求来预热该网站。 它必须与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>