一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

IIS应用程序池自动停止/关闭/假死网提示 Service Unavailable解决办法

时间:2012-09-06 编辑:简简单单 来源:一聚教程网

问题现象:

访问站点。会导致应用程序池自动关闭,而出现Service Unavailable的提示。在允许和禁止一些WEB服务扩展时会提示MMC有错误。
解决过程:
         开始时以为是IIS的问题。重装N次后,问题依然。看事件日志,提示如下:
事件类型: 警告
事件来源: W3SVC
事件种类: 无
事件 ID: 1009
日期:    2007-7-11
事件:    14:57:47
用户:    N/A
计算机: GHITR-61969D77E
描述:
为应用程序池 事件类型: 错误
事件来源: DCOM
事件种类: 无
事件 ID: 10016
日期:    2007-7-11
事件:    14:57:47
用户:    NT AUTHORITYNETWORK SERVICE
计算机: GHITR-61969D77E
描述:
应用程序-特定 权限设置未将 COM 服务器应用程序(CLSID 为
{A9E69610-B80D-11D0-B9B9-00A0C922E750}
)的 本地 激活 权限授予用户 NT AUTHORITYNETWORK SERVICE SID (S-1-5-20)。可以使用组件服务管理工具修改此安全权限。
有关更多信息,请参阅在 [url]http://go.microsoft.com/fwlink/events.asp[/url] 的帮助和支持中心。
主要有用的信息是记信CLSID: {A9E69610-B80D-11D0-B9B9-00A0C922E750},打开注册表,搜索这个项,在这个项中一个名为LocalService的值为IISADMIN,看来就是这个组件的权限不够。然后打开管理工具---组件服务,在组件服务--计算机--我的电脑--DCOM 配置--IIS ADMIN Service上点右键属性,在安全标签中的启动和激活栏的编辑按钮,加上NETWORK SERVICE 用户,给上本地启动和本地激活权限,然后重启IIS就可以,但不是最好解决办法

问题分析与解决办法

1:没有打SP1补丁的时候会出现这个IIS6.0假死问题,但现在微软都在自动更新里面出补丁了,一般你打好最新补丁后是不会出现此问题了。(所以现在的IIS假死与这个关系不是很大)
2:从IIS6.0开始CPU资源都在应用池里面限制了,不象以前的IIS.5。所以假死的池的缘故就是池被拉死,你在网站打不开的时候可以看到你的某个应用池是禁用的,上面出现一个红叉。你鼠标右键启动网站又会自动恢复。 这个原因:大概是以下几个因数造成的。
(1):你限制了应用池的资源,限制得太小 比如:50这样或更少更多一点,这个时候如果你这个池下面的网站占用CPU太高,比如超过50% 那么5分钟后他就自动死了,手工默认建立的应用池默认是超过资源不操作。
出现上面这个情况解决方法:1:不限制CPU资源,(这个是不可取的,不限制资源,有的程序有BUG占用资源厉害了的,服务器都会被拉死,你可能都无法操作服务器。)2:在超过资源那里选择关闭,这个关闭默认是失败5次,90秒内恢复,一般默认就可。网站能自动恢复,这个关闭:不是永久关闭,意思是超过资源关闭,然后在某时间内自动恢复池。不操作就是不恢复,这个是很多人的误区。
(2):内存限制 在IIS6.0应用池上面有虚拟内存和最大内存限制,如果你设置了这个。那么网站访问量大了 也会出现假死,所以不建议设置这里。默认就可。
3:就是服务器自身内存太小,网站运行当然需要使用到内存了,当内存不够的时候应用池也会死掉变成禁用。那么只有等内存全部释放出来才能恢复应用池了。出现这个情况:那么你就要考虑加内存或者检查到底是什么程序占用了内存了。比如MSSQL数据库,这个可是吃内存得大户啊,最好别和WEB服务器同时一个服务器上。很多人用1G内存做 2003系统,2003NET结构是很占用内存的,所以做服务器选2003还得把内存加到2G或更高才好。 内存不够上面 2点讲到的,是没办法操作了,也无法自动恢复。
4:就是ACCESS数据库太大或查询太多,这个也会出现把IIS拉死,解决方法;修复ACCESS数据库,或尽量少用ACCESS数据库,升级至sqlserver数据库;或者在技术方面革新,像现在有些网站系统,风讯、动易等cms;pjblog、zblog等博客程序,都支持生成静态功能.
5:不同网站用不同应用池:根据你自己实际情况而定,站点大的最好独立一个应用池,限制他的资源超过了自动回收,看上面(1)讲到的,这样就不影响其他站点。中型站点:多个网站共用一个应用池,比如5个站点用一个池,设置他资源时间等等。这样他们就算超资源了也不影响其他应用池的网站。
6:设置回收时间:很多人以为设置回收池越短越好,其实是错误的,每次回收当然是把内存回收回来了,但加重了一次服务器的负担,当服务器比较繁忙的时候,有可能导致其他应用池死。所以建议设置共1000就行了。其他独立池按照他网站流量而设置 可以设置600 也行,共用的不建议设置太短。
7:网站后台过不了多久自动退出又要重新登陆:这个情况就是你设置回收时间太短了,按照 6点设置吧。 不要设置什么20分、30分这样的,这样不好的。另外一个原因就是和站的响应设置时间有关,设置得稍长些。
8:windows 2003系统iis6访问本机的站点时提示“Service Unavailable”;
查看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之后再访问同一站点,则一切正常。

9:重启IIS中的特定应 用程序池命令和自动重启的方法
操作系统是Windows server 2003 SP1+的情况下,可以用以下命令部分重启IIS应用程序池:
cscript.exe c:windowssystem32iisapp.vbs /a “DefaultAppPool”
其 中/a 代表alternatively,”DefaultAppPool”代表应用程序池的实例名
10:网站有CC攻击

关于“未指定的错误”的问题 的比较正解的解决方法

找到三种情况:
第一种解决方法:使用Ms Access里的“工具->数据库实用工具->压缩和修复数据库”来修复db/global.asa。如果修复后还是出错,请查看db目录下是否有global.dbl文件,如果有请删除,如无法删除请结束服务器w3wp.exe进程(win2003)或Aspnet_wp.exe进程(win2000)后再删除。

第二种解决办法:
设置Internet信息服务(IIS)管理器中的应用程序池,更改网站的程序池属性,主要是性能的设置,其他最好默认设置,

调整后即可解决问题。
第三种解决方法:
其实只要很简单的几步:
开始。。。运行。。。regsvr32 jscript.dll开始。。。
运行。。。regsvr32 vbscript.dll开始。。。
运行。。。iisreset

第四种解决方法:
HKEY_LOCAL_MACHINESystemCurrentControlSetServicesW3SVCParameters
新建一个DWORD项,名字为:UseSharedWPDesktop 值为1 重启IIS

热门栏目