应用程序池替代方案startMode =“ AlwaysRunning”


8

如果某个Web应用程序要求使用其应用程序池对其自身进行设置,则可以在applicationHost.config中将其配置为:

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

仅每分钟从服务器请求一个页面是否会达到相同的结果?还是将startMode设置为该值还具有其他含义?

Answers:


6

看起来是一样的。貌似,由于Microsoft看到开发人员必须这样做,所以他们创建了此新功能来自动处理此问题。

[开发人员]然后设计定制脚本,向应用程序发送虚假请求,以在用户点击之前定期“唤醒”并执行此代码,或者只是使不幸的第一个访问该应用程序的客户等待,直到此逻辑完成之前处理请求(这可能导致请求延迟很长)。

ASP.NET 4附带了一个称为“自动启动”的新功能,可以更好地解决此问题,并且当ASP.NET 4在IIS 7.5(Windows 7和Windows Server 2008 R2附带)上运行时可用。自动启动功能提供了一种受控方法,用于启动应用程序工作进程,初始化ASP.NET应用程序,然后接受HTTP请求。

来自Scott Guthrie的自动启动ASP.NET应用程序(VS 2010和.NET 4.0系列)

因此,除非您不使用IIS 7.5,否则我只能使用内置功能。

(并且,谢谢;我对该功能一无所知,但绝对可以想到我为此开发的网站可以使用它。)


6
他们在applicationHost.config级别创建了此功能,真是太可惜了。而是应该在web.config级别。
克里斯·马里西奇

4

IIS 7.5在站点或应用程序级别上包括一个附加标志,称为preloadEnabled。将其设置为true将创建一个伪造的请求来预热该站点。必须与结合使用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>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.