什么是重新启动 IIS 的“友好”方式?

Chr*_*s_K 2 iis windows-server-2003 service

在 Windows Server 2003 Web 上运行 IIS 6。

我们有一些 3rd 方组件会泄漏内存,因此我们安排了定期作业来重新启动 IIS。作业只是调用iisrestart /reset,这似乎完成了这项工作……但它确实会生成一大堆事件日志事件——包括 3 个错误和一个警告。也许我们做错了?

有没有一种“更干净”的方法来回收 IIS 进程而不会让 Windows 对我们感到不安?随着我们的监控改进,prod Web 服务器上的错误事件会导致不必要的干扰。


对于那些好奇的人,这里是事件“循环”的样子(为简洁起见,我对描述文本进行了一些删节)。这些都发生在 1 - 2 秒的跨度内:

警告- WinRM - ID 10149 - WinRM 服务未侦听 WS-Management 请求

信息 - IISCTLS - ID 6 - IIS 重置在停止服务时遇到错误

信息 - 服务控制管理器 - ID 7035 - SMTP 服务已成功发送停止控制

信息 - 服务控制管理器 - ID 7035 - Windows 远程管理服务成功发送停止控制

信息 - 服务控制管理器 - ID 7036 - Windows 远程管理进入停止状态

错误- 服务控制管理器 - ID 7034 - 万维网发布服务意外终止。它已经这样做了 x 次

错误- 服务控制管理器 - ID 7034 - IIS 管理服务意外终止

错误- 服务控制管理器 - ID 7034 - SMTP 服务意外终止

信息 - IISCTLS -ID 4 - 从用户收到的 IIS 终止命令。

信息 - IISCTLS - ID 2 - 从用户收到的 IIS 停止命令。

信息 - 服务控制管理器 - ID 7035 - IIS 管理服务服务已成功发送启动控制

信息 - 服务控制管理器 - ID 7035 - 万维网发布服务服务已成功发送启动控制

信息 - 服务控制管理器 - ID 7035 - SMTP 服务已成功发送启动控制

信息 - 服务控制管理器 - ID 7035 - Windows 远程管理服务已成功发送启动控制

Mat*_*ttB 5

您是否在工作进程隔离模式下运行 IIS?如果是这样,更好的解决方案是使用应用程序池回收功能。您可以将有问题的应用程序放入其自己的池中,然后根据各种条件(每 X 分钟,或者当内存使用量达到 Y 兆字节时,或者当您向应用程序发出 Z 个请求时等)仅重新启动其进程。

http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/003ed2fe-6339-4919-b577-6aa965994a9b.mspx?mfr=true