应用程序池 startMode="AlwaysRunning" 的替代方案

Chr*_*sic 8 iis-7

如果 Web 应用程序要求自己设置它的应用程序池,则在 applicationHost.config 中将其配置为:

<add name="AppPool" managedRuntimeVersion="v4.0" startMode="AlwaysRunning" />
Run Code Online (Sandbox Code Playgroud)

只需每分钟从服务器请求一个页面就可以达到相同的结果吗?或者将 startMode 设置为这个值还有其他含义吗?

Jam*_*emp 6

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

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

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,否则我会说只使用内置功能。

(谢谢;我不知道这个功能,但绝对可以想到我开发的可以使用它的网站。)

  • 他们在 applicationHost.config 级别创建此功能真是太可惜了。它应该在 web.config 级别。 (7认同)