最近,新任职的公司有一台测试服务(Windows Server 2008 R2 + IIS6.1)器因突然停电,造成了意外“损伤”。来电后再次开机,发现IIS里大部分的网站均打不开。均为如下(图01)的样子。

IIS无法启动,应用程序池自动关闭,应用程序池XXXX将被自动禁用 解决方案之一-LMLPHP

(图 01)

然后查看应用程序池,发现打不开的那些网站对应的应用程序池都显示“已停止”。然而,还有一部分是显示“已启动”的。试试对应的网站,结果打开后同样显示(图01)的样子。而且,返回应用程序池去查看的时候,之前对应的应用程序池状态由“已启动” 自动变成"已停止"。再去查看系统日志文件。看到如下内容:

IIS无法启动,应用程序池自动关闭,应用程序池XXXX将被自动禁用 解决方案之一-LMLPHP

(图 02)

IIS无法启动,应用程序池自动关闭,应用程序池XXXX将被自动禁用 解决方案之一-LMLPHP

(图 03)

IIS无法启动,应用程序池自动关闭,应用程序池XXXX将被自动禁用 解决方案之一-LMLPHP

(图 04)

IIS无法启动,应用程序池自动关闭,应用程序池XXXX将被自动禁用 解决方案之一-LMLPHP

(图 05)

于是上网找各种相关资料。其中解决该问题的前半段是用如下这个帖子的方法。

http://www.360doc.com/content/14/1119/01/16402602_426289088.shtml

但是,问题依旧。经过一番折腾,还是着手于“应用程序池”。

最后,在应用程序池上--右键--高级设置--进程模型--标识,更改了这项里的“内置账户”。将原有的“ApplicationPoolIdentity”更改为之前设置的“NetworkService”。然后浏览所有网站,一切OK了。

特殊提示:“ApplicationPoolIdentity” 是虚拟账户 与 “NetworkService”的权限有差异。在此不详细说明。

05-11 17:32