联系我们

公司地址: 上海市沪宜公路1188号4号楼
     一层
联系电话:021-31080981
电子邮箱:soline@soline.com.cn
邮政编码:201802

异常代码: 0xc0000374

WEB环境: Windows Server 2008 R2+IIS7.5+fastCGI+PHP+mysql IIS7.5中的某个网站每过一段时间后就打不开,打开首页出现503错误,页面提示如下: 点击"开始"-"控制面板"-"管理工具"-"组件服务"-"计算机"-"我的电脑"-"DCOM"选项, 选择其下的"IIS ADMIN SERVICE",右健选择"属性",找到"安全",在"启动和激活权限"中编辑"自定义",添加帐号"NETWORK SERVICE ", 给该帐号赋予"本地启动"和"本地激活"的权限,重新启动IIS即可("开始"-"运行"-"CMD",点确定,然后运行IISRESET)。奇怪的是我在Win2008 R2上正常安装了IIS,在DCOM选项中却没有"IIS ADMIN SERVICE"选项,系统服务列表中也没有该服务。导致所有的.net程序都无法正常运行。(系统中没有"IIS ADMIN SERVICES"服务和DCOM选项的解决方法:这一般是IIS系统角色未完全安装导致的,在服务器管理器中将IIS角色服务里的"管理工具"全部安装即可,最重要的是要安装"管理工具"下的"管理服务")。 聚友已经总结了五种Service Unavailable的原因,第一篇是常见的4个方面的原因(原文见http://www.juyo.org/juyo/original/Service-Unavailable/),之后又遇到一个服务器上网站出现这个情况,朋友对照了那四种情况,均没有找到其原因,于是我上该服务器上查看,最终得以解决(原文见http://www.juyo.org/juyo/work/Service-Unavailable-2/),今天就遇到了第六种Service Unavailable的情况,刚刚安装的IIS就出现了Service Unavailable,都不在那五种内,于是上服务器查看解决。因为是新装的IIS服务器,一般来说问题不可能出在IIS本身,出现这样的问题一般先从权限方面考虑,先考虑IIS服务的启动帐户没有权限启动IIS。单击“开始”——“设置”——“控制面板”——“管理工具”——“服务”,打开本地服务管理器,找到IIS Admin Service,双击打开IISADMIN属性,选择“登陆”选项卡,显示登陆身份为本地系统帐户,那IISADMIN服务就没有权限问题。单击“开始”——“设置”——“控制面板”——“管理工具”——“服务”,打开本地服务管理器,找到World Wide Web Publishing Service,双击打开W3SVC服务属性,选择“登陆”选项卡,显示登陆身份为本地系统帐户,那W3SVC服务就没有权限问题。(这里为了更加易操作,将打开“服务”的操作重新说了一遍)从这里可以排除了服务启动帐号没有权限启动的问题,下面还是回到终极解决方法中来。现象:单击“开始”——“设置”——“控制面板”——“管理工具”——“事件查看器”,打开事件查看器,单击“系统”,看到很多警告和错误,主要是以下几个: 1)来源是“W3SVC”、事件ID为“1002”的错误,描述是“应用程序池 'DefaultAppPool' 被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误。” 2)来源是“W3SVC”、事件ID为“1009”的警告,描述是“为应用程序池 'DefaultAppPool' 提供服务的进程意外终止。进程 ID 是 '1756'。进程退出代码是 '0xffffffff'。” 3)来源是“DCOM”、事件ID为“10016”的错误,描述是“应用程序-特定 权限设置未将 COM 服务器应用程序(CLSID 为{A9E69610-B80D-11D0-B9B9-00A0C922E750})的 本地 激活 权限授予用户 NT AUTHORITY\NETWORK SERVICE SID (S-1-5-20)。可以使用组件服务管理工具修改此安全权限。” 分析:通过这几个事件可以判定应该是第三个事件ID为“10016”的DCOM错误引起了事件ID为1009的应用程序池意外退出,从而造成事件ID为1002的应用程序池被自动禁用的W3SVC错误,下面就来解决。问题确定:通过DCOM错误的提示,原因是NETWORK SERVICE用户没有权限启动{A9E69610-B80D-11D0-B9B9-00A0C922E750},找到了原因,下面就来解决这个问题先查找这个CLSID{A9E69610-B80D-11D0-B9B9-00A0C922E750}对应的服务,单击“开始”——“运行”,输入“regedit”启动注册表编辑器,在注册表编辑器的左侧树中选中“我的电脑”,再使用快捷键“Ctrl+F”打开查找对话框,在“查找目标”后输入刚才的CLSID:“{A9E69610-B80D-11D0-B9B9-00A0C922E750}”,“查看”的复选框中只保留“项”,回车执行查找任务。查找到该CLSID,在注册表编辑器右侧显示了该CLSID的信息,从该信息得知,该CLSID对应的服务是IIS Admin Service,现在就可以确定NETWORK SERVICE用户没有权限启动IIS Admin Service。打开“开始”-“控制面板”-“管理工具”-“组件服务”-“计算机”-“我的电脑”-“DCOM配置”选项,找到“IIS Admin Service”,右健选择“属性”,找到“安全”,在“启动和激活权限”中编辑“自定义”,添加帐号“NETWORK SERVICE ”, 赋予“本地启动”和“本地激活”的权限,重新启动IIS。重启IIS,再次打开网页,现在已经正常显示了。第六种原因造成service unavailable圆满解决。