每晚运行 IISReset 是否已过时?

Sco*_*tie 7 application-pools iis-8

在过去的 2 周里,我们每晚的 IISReset 没有成功恢复并导致我们中断。

我们有一个每晚运行的 Windows 任务,它执行 IISReset,我想知道这是否还有必要?

我应该查看应用程序池中的功能来重新启动吗?

Rya*_*ies 25

我不会认为这是一个好习惯。当大多数人通常设置诸如“每晚 iisreset”或“每晚重启”之类的东西时,通常是因为他们运行的应用程序编写不当并且会泄漏资源,以至于整个系统可能会变得不稳定,除非我们重新启动应用程序、服务,甚至整个系统。问题是,那些人忽略了实际问题。(或者无法修复它。)

修复应用程序以使其稳定且不泄漏资源,然后 iisreset 或系统重新启动将不再需要或有帮助。不幸的是,这在 IIS Web 应用程序中非常普遍,以至于 IIS 本身的设计理念是它运行的应用程序编写得不好且容易泄漏。否则就不需要定期回收应用程序池等。

所以回顾一下 - 如果每晚 iisreset 是您策略的一部分,那是因为您的 Web 应用程序编写得不好,而理想的做法是修复您的应用程序。(是的,回收应用程序池比 iisreset 更好,因为您可以回收应用程序池而不会影响服务器上的所有其他网站。)

编辑:这是一个非常简洁的博客文章,来自一个基本上和我说的一样的人,但他还声称他总是完全完全禁用应用程序池回收,而不是坚持他的团队修复每一个最后的内存泄漏,IMO是一项非常英勇和值得称赞的努力:

http://thatextramile.be/blog/2010/06/why-do-we-recycle-our-application-pools/

  • 上次我做了一些英勇而值得称赞的事情时,我当时的同事“解决了”它:( (7认同)
  • 修复了你的墙 o' 文本。希望你不要介意。:) (2认同)

Pet*_*orf 8

是的,完全过时了,事实上它从来没有被要求或好的做法。如果您必须这样做,则说明您的应用程序有问题。

回收应用程序池是一种便宜得多的操作,因为它只是关闭一个进程并启动另一个进程。Iisreset重新启动整个 IIS 及其所有组件。

AppPool 回收还为您提供了更多关于何时根据各种指标重新启动池的粒度。