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

热门教程

IIS站点出现Service Unavailable 的解决办法

时间:2022-06-30 18:15:50 编辑:袖梨 来源:一聚教程网

今天我们讨论IIS站点出现Service Unavailable与程序池资源配置之间的问题。

右键点击一个IIS应用程序池,选择属性,会弹出一个程序池属性对话框,其中有四个选项卡。

1、“回收”选项卡

“回收”选项卡中可以设置回收进程池的时间间隔,每次回收进程池后,进程池所有占用的资源都将被释放。这对服务器的负载是一个有力的减轻!
在“内存回收”中,可以设置程序池最大可占用的内存和虚拟内存的大小,如果超过限制,进程池将会被结束掉。内存和虚拟内存的限制根据具体的站点而定,一般建议将内存和虚拟内存的限制都设置在500M左右。

2、“性能”选项卡

“性能”选项卡中有一个很重要的项目就是“启用CPU监视”,可以设置当程序池的CPU使用率超过指定的百分比之后,对进程池进行关闭。建议的优化参数为:每隔1分钟刷新一次CPU使用率,当CPU使用率超过50%时,执行“关闭”操作。

3、“运行状况”选项卡

“运行状况”选项卡中有也有两个很重要的参数:启动时间限制和关闭时间限制。比如前面设置了超内存和超CPU会关闭程序池,可能会出现关闭程序池失败,那这个时间应会怎么办呢?
如果池没有在指定时间内关闭,IIS就会在等待“关闭时间限制”后,强行关闭它一个刷新CPU时间。在这个停止的时间内,网站无法访问,提示“Service Unavailable”。关闭时间和启动时间间隔设置:设短一些比如10秒,这样当您的网站程序大量占用系统资源时IIS自动快速回收进程并且快速启动进程,您的网站暂时还可以将就着工作。

这两个值建议设置为10秒。

4、“标识”选项卡

“标识”选项卡中,主是用于设置当前程序池以什么账户运行,不在我们今天的讨论范围内。


上面把四个选项卡都讲到了,下面我们进入正题来解决Service Unavailable 问题。

1.首先是打开IIS管理器.检查应用程序池,果然"DefaultAppPool"出错了.而且不是平常的停止的图标.

2.试着重启"DefaultAppPool"应用程序池,但是没过多久程序池又出错了.

3.到了查看事件日志的时候了.发现了以下这类的日志

事件类型: 警告
事件来源: W3SVC
事件种类: 无
事件 ID: 1009
日期:   2008-6-24
事件:   16:12:33
用户:   N/A
计算机: MAIL
描述:
为应用程序池 'DefaultAppPool' 提供服务的进程意外终止。进程 ID 是 '3160'。进程退出代码是 '0xffffffff'。

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

4.会不会是默认的程序池出问题了?于是,尝试新建一个新的程序池.将默认网站的程序池改成新的.但是问题依旧.出现相似的日志.

事件类型: 错误
事件来源: W3SVC
事件种类: 无
事件 ID: 1002
日期:   2008-6-25
事件:   14:17:04
用户:   N/A
计算机: MAIL
描述:
应用程序池 'AppPool #1' 被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误。

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。


5.再查找事件日志另一个日志引起了我的注意.如下:

事件类型: 错误
事件来源: DCOM
事件种类: 无
事件 ID: 10016
日期:   2008-6-24
事件:   16:12:33
用户:   NT AUTHORITYNETWORK SERVICE
计算机: MAIL
描述:
应用程序-特定 权限设置未将 COM 服务器应用程序(CLSID 为
{A9E69610-B80D-11D0-B9B9-00A0C922E750}
)的 本地 激活 权限授予用户 NT AUTHORITYNETWORK SERVICE SID (S-1-5-20)。可以使用组件服务管理工具修改此安全权限。

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

6.有点戏了.看看CLSID 为 {A9E69610-B80D-11D0-B9B9-00A0C922E750} 是什么服务先.最后在下面的注册表项中找到它:

HKEY_CLASSES_ROOTAppID{A9E69610-B80D-11D0-B9B9-00A0C922E750}

7.名字刚好是"IIS Admin Service"

8.好了,找到是什么了.从"管理工具"中打开"组件服务",找到IIS Admin Service对比一下CLSID是否一致

9.确定是这个以后,接下来的就是为它增加NETWORK SERVICE权限了.
A启动和激活权限,点击"自定义"..

B.在用户列表中添加"NETWORK SERVICE",

C.并给予本地启动和激活权限,保存退出.

到此问题解决.

热门栏目