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