我正在我的 Windows Vista Ultimate(64 位)工作站上开发一个网站,在本地使用 IIS 7.0 进行测试。在随机时间,我收到“IIS 工作进程停止工作并已关闭”错误弹出窗口。之后我可以继续在该站点上工作,因此 IIS 似乎毫无问题地产生了新的工作进程。
从查看错误日志看来,正在发生的事情是 IIS 在指定的非活动期后关闭工作进程,正如它设计的那样。到目前为止,一切都很好,但为什么会导致错误?
该站点托管在 localhost 端口 8008 上,并使用 PHP (ISAPI) 和 URL Rewrite 模块,但其他配置相当简单。相关的错误日志条目按时间顺序如下:
系统日志,下午 12:10:18(信息,事件 5186,WAS):
由于不活动,服务应用程序池“SDL”的进程 ID 为“6288”的工作进程已关闭。应用程序池超时配置设置为 20 分钟。需要时将启动一个新的工作进程。
应用程序日志,下午 12:10:20(错误,事件 1000,应用程序错误):
错误应用程序 w3wp.exe,版本 7.0.6002.18005,时间戳 0x49e023cf,错误模块 ntdll.dll,版本 6.0.6002.18005,时间戳 0x49e03824,异常代码 0xc0000374,错误偏移量 0x000ab0bf,进程 id 0x1890,应用程序启动时间 9x1890,应用程序启动时间 0xdb0.ca7
系统日志,下午 12:10:24(警告,事件 5009,WAS):
为应用程序池“SDL”提供服务的进程意外终止。进程 ID 为“6288”。进程退出代码为“0xff”。
您的应用程序日志 (0xc0000374) 中的错误代码是堆损坏错误。您可以使用故障转储进一步调试它,但这有点痛苦。您提到您使用的是 ISAPI DLL,因此我会寻找专门支持 IIS7 的该 DLL 的更新版本。