9

如何防止 ASP.Net 站点被 IIS 卸载?

我有一个可能是世界上最愚蠢的网站——它每小时唤醒一次并将时间戳写入日志文件。当应用程序启动时,它会在日志中显示一个时间戳,当它死亡时,同样的事情。

在 IIS 中,我进入其应用程序池并将空闲超时设置为 0,并将生成回收事件日志条目 > 常规时间间隔设置为 False。

然而,该站点仍然每天大约卸载一次 - 我在日志中收到 App Unloading... 条目,它一直处于死状态,直到我下次访问它。

如何防止它卸载?

(显然,一旦我解决了这个问题,这个网站会做更多的事情 - 现在它尽可能简单地隔离问题。)

4

2 回答 2

18

应用程序池有另一个属性,它会导致它每 N 分钟自动回收一次(默认为 1740 或每 29 小时)。将此设置为零以禁用回收。该属性(在 IIS7 上)位于“回收”标题下,称为“常规时间间隔(分钟)”

于 2011-05-04T20:25:39.757 回答
1

除了@jlew 的建议之外,如果您在 ASP.Net 中连续/定期运行后台任务/计时器,而没有 Windows 服务和计划任务的安装/配置/维护负担,本文中的指导也很重要:

http://haacked.com/archive/2011/10/16/the-dangers-of-implementing-recurring-background-tasks-in-asp-net.aspx

它包括一个有用的帮助程序库 WebBackgrounder,它抽象了文章中的建议,以处理正常关闭和后台任务的一些典型需求。

它不会为您配置 IIS - 您需要自己修改回收设置。

于 2011-10-28T01:22:09.500 回答