我的 Windows 2003 服务器在晚上 8:03 左右突然停止工作。Windows 事件记录了以下消息:
管理员已请求回收应用程序池“Pool_XYZ”中的所有工作进程。
在那之后
为应用程序池“Pool_XYZ”提供服务的进程在关闭期间超出了时间限制。进程 ID 为“870072”。
这两条消息每五分钟重复一次。
我执行了 IISREST,可以看到 inetinfo.exe 正在运行。当我尝试访问该站点时,如果服务器未运行,浏览器将返回相同的页面。没有 w3wp.exe 进程(应用作应用程序池主机)。vent 日志中没有错误消息。如果我通过 telne 连接到端口 80,则只要我按下第一个字符,服务器就会断开连接。iis 日志文件中没有记录晚上 8:03 之后的请求。
知道哪里出了问题吗?我重启了服务多次,但毫无作用。
答案1
我怀疑加载到工作进程中的某个 [外部] DLL 存在问题。这些问题是使用扩展程序(ASP.NET、ISAPI 扩展程序等)时出现的。
我的建议是使用 Microsoft 的 SysInternals ProcessMonitor 查看您尝试启动 IIS 或浏览时服务器正在做什么。将过滤器设置为进程名称 = w3wp.exe看看会发生什么。
您可能需要禁用某些扩展,然后重新安装它们等。
我见过的另一种导致类似问题的情况是,恶意软件挂接了端口 80,并在 IIS 前面进行代理。如果你愿意的话,可以称之为一种 MITM 攻击。
答案2
我通过重启服务器“解决”了这个问题。当然,服务器不同意重启,在关机期间卡住了。我不得不通过远程计算机使用 iisreset machinename /reboot 启动另一次重启