IIS6.0 IIS7.5应用程序池自动停止的解决方法 搜集整理

时间:2021-11-26 12:55:26

来源:http://www.guchengnet.com/1499.html

IIS6.0 IIS7.5应用程序池自动停止的解决方法 搜集整理

有2.3个月没有用本地的iis测试网站了,打开iis后新建网站,打开网站直接显示503错误,查看程序池,发现对应的程序池处于停止状态。一开始简单的以为新建的网站程序池没有开启,所以直接右键——对应的程序池——启动,重启下网站,打开,蒙了、、、依旧503,再返回去看程序池,又停止了。于是百度一下看看有没有人跟我遇到一样的问题,好家伙、、、真的好多。

网上有好多种方法,自己试过一下三种方法,前两种都没有解决我的问题,但是看网上有人使用过成功解决了,不知道是不是运行环境不一样,在这里罗列出来供大家参考!

我的iis运行环境:win7 64位(不是服务器,是本地计算机),iis6.0,php3.5+php5.6

我的问题:iis环境下4个以前建的站点(包括1个asp站点、3个php站点),1个phpmyadmin管理站点,1个新建php站点,4个以前的站点与phpmyadmin管理站点打开都是正常的,无论是asp还是php站点测试运行都正常,但是只要打开新建的php站点对应的程序池就会自动关闭,我尝试把新建的站点换成asp程序(因为有人说iis对php的支持很不好),但是问题依旧,打开站点显示503错误,对应的程序池自动停止。因此我尝试了一下方法:

方法一:所谓的iis假死
应 用程序-特定 权限设置未将 COM 服务器应用程序(CLSID 为{A9E69610-B80D-11D0-B9B9-00A0C922E750}) 的 本地 激活 权限授予用户 NT AUTHORITYNETWORK SERVICE SID (S-1-5-20)。可以使用组件服务管理工具修改此安全权限。
解决方法,给NETWORK SERVICE 加*问iis服务的权限,具体方法如下:
点击“开始”-“控制面板”-“管理工具”-“组件服务”-“计算机”-“我的电 脑”-“DCOM”选项,
选择其下的“IIS ADMIN SERVICE”,右健选择“属性”,找到“安全”,在“启动和激活权限”中编辑“自定义”,添加帐号“NETWORK SERVICE ”,给该帐号赋予“本地启动”和“本地激活”的权限,重新启动IIS之后再访问同一站点,则一切正常。

在使用这种方法的时候我发现我的“IIS ADMIN SERVICE”安全属性是灰的,跟本不可以自定义。为了完成这个方法我又尝试先更改这一项的权限:
1、先找到应用程序对应的APPID,下图画圈的地方。
IIS6.0 IIS7.5应用程序池自动停止的解决方法 搜集整理
2、找到注册表对应的位置。方法为:开始——运行,输入“regedit” 打开注册表,点编辑——查找——粘贴刚才的ID号就可以。
IIS6.0 IIS7.5应用程序池自动停止的解决方法 搜集整理
3、修改注册表权限。这个就简单了,在左侧树上——右键——权限。
IIS6.0 IIS7.5应用程序池自动停止的解决方法 搜集整理
IIS6.0 IIS7.5应用程序池自动停止的解决方法 搜集整理
IIS6.0 IIS7.5应用程序池自动停止的解决方法 搜集整理
这个地方为了保险起见我直接添加了user、network service两个账户。然后权限全部都加上了,因为我是本地计算机,如果是配置服务器请慎重添加所有者。
注意,搜索的时候会出现三个搜索结果,我修改完第一个后,发现“IIS ADMIN SERVICE”安全属性还是不可编辑,因此我又修改了第三个搜索结果的权限(第二个搜索结果没有操作),然后就可以编辑“IIS ADMIN SERVICE”的安全属性了。

然后继续编辑“IIS ADMIN SERVICE”的安全属性:在“启动和激活权限”中编辑“自定义”,添加帐号“NETWORK SERVICE ”,给该帐号赋予“本地启动”和“本地激活”的权限,重新启动IIS之后再访问同一站点,则一切正常。 (但是我的问题没有解决,打开网站,对应的程序池依旧自动停止)

方法二:万维网发布服务(W3SVC)已经停止
IIS6.0 IIS7.5应用程序池自动停止的解决方法 搜集整理
这个方法比较简单,在桌面上右键点击我的电脑——管理——服务——world wide web publishing services,找到此项,右键——启动就可以了,有些不能启动的,可以右键——属性把启动类型改成自动或者手动之后,再右键启动。(但是我的问题没有解决,打开网站,对应的程序池依旧自动停止)

看网上有人说“限制了应用池的资源,限制得太小 比如:50这样或更少更多一点,这个时候如果你这个池下面的网站占用CPU太高,比如超过50% 那么5分钟后他就自动死了,手工默认建立的应用池默认是超过资源不操作。”(但是我的旧站点是正常的,我也没有动过iis的配置,所以我排除掉这个方法,没有尝试)

方法三:好不容易搜索到的这个结果,上述两种方法的搜索结果太多了,显得这个方法好冷门,感谢这个方法的提供者(我已经找不到那个页面了、、、)
最好用的方法往往是最简单的!!!!!!
右键点击自动停止的应用程序池——高级设置——修改标识为——local service(默认的应该是applicationpoolidentity),如图:
IIS6.0 IIS7.5应用程序池自动停止的解决方法 搜集整理
至此,我的问题解决了,程序池不在关闭,站点打开正常。

当然我也还有疑问:我办公室的电脑上应用程序池的默认标识是applicationpoolidentity,但是本地站点是完全正常的,如果有大神晓得其中的道理的话,感谢您留言或者评论一下!