廖光明 發表於 2014-6-1 20:29:11

503 service unavailable错误说明

<p><strong>一、如果出现&ldquo;Service Unavailable&rdquo;的提示,刷新几下又可以访问。</strong></p>
<p>  出现这种情况是由于您的网站超过了iis限制造成的由于2003的操作系统在提示IIS过多时并非像2000系统提示&ldquo;链接人数过多&rdquo;,而是提 示&quot;Service Unavailable&quot;,出现这种情况是由于网站超过了系统资源限制造成的,主要是程序占用资源太多。<br />  比如同样是100人在线的论坛,雷傲论坛所占的资源就是PW论坛所占资源的10倍以上;另外,一些死循环程序,或者不优化的程序都会占用太多的系统资源,而系统资源明显是有限的。不过WINDOWS2003的操作系统,各网站之间是以独立进程运行的,不会相互影响。<br />  如果一个网站的程序占资源太多或者发生太多的错误,系统日志就会提示:&ldquo;应用程序池 'xxx' 被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误,?或者提示:应用程序池 'xxx' 超过了其作业限制设置。这时,访问这个网站就会提示:Service Unavailable。一般系统会在30秒左右恢复正常,多刷新几次就能正常访问了。<br />  另外,如果你的网站当前访问人数过多,超过了系统的iis连接数限制,也会出现Service Unavailable的提示(win2k主机下出现连接过多就会提示:连接过多,请稍后再试;而win2003的主机刚直接提示:Service Unavailable)</p>
<p><strong>二、没有限制IIS连接,还是遭遇Service Unavailable </strong></p>
<p>  多见于使用ACCESS数据库的网站,一般使用windows 2003 IIS 6的用户可能这个问题一直正常的系统,突然有一个网站打不开了提示: Service Unavailable 但这个网站并没有限制IIS连接数。然后马上影响到了别的网站,不到一会,其他的网站也全变成了Service Unavailable 这是什么原因呢?<br />  我们分析后可以知道,还是MS的老问题。ACCESS引擎当了。用服务器医生的文件医生修复,查看修复结果时会发现一些文件引起ACCESS引擎&ldquo;灾难性故障&rdquo;及&ldquo;未将对象引用设置到对象的实例&rdquo;的错误。 通过文件医生修复后,系统才会恢复正常。</p>
<p><strong>三、浏览一个 Windows SharePoint Services Web 站点时,提示:Service Unavailable </strong></p>
<p>  Microsoft Internet 信息服务 (IIS) 6.0 中没有正确地配置用于虚拟服务器的应用程序池,就可能会发生此问题。</p>
<p>  解决方案: </p>
<p>  要解决此问题,按照下列步骤操作:</p>
<p>  1、验证是否已为虚拟服务器配置了应用程序池。默认的应用程序池是 MSSharePointPortalAppPool。<br />  请按照下列步骤来确定虚拟服务器正在使用的应用程序池。<br />  a). 单击&ldquo;开始&rdquo;,指向&ldquo;管理工具&rdquo;,然后单击&ldquo;Internet 信息服务 (IIS) 管理器&rdquo;。<br />  b). 展开&ldquo;ServerName&rdquo;,展开&ldquo;Web 站点&rdquo;,右键单击虚拟服务器,然后单击&ldquo;属性&rdquo;。<br />  c). 单击&ldquo;主目录&rdquo;选项卡。 为虚拟服务器配置的应用程序池列在&ldquo;应用程序池&rdquo;框中。<br />  d). 单击&ldquo;确定&rdquo;。<br />  2、验证应用程序池帐户使用的密码是否正确。IIS 不会自动轮询 Active Directory 目录服务中的密码更改。如果应用程序池帐户是一个域帐户,其密码已过期,则在为此帐户重新指定一个新密码后,您可能会收到本文&ldquo;症状&rdquo;部分所描述的错误信息。<br />  3、 验证应用程序池帐户是服务器上的 IIS_WPG 组和 STS_WPG 组的成员。<br />  4.、重新启动 IIS 以回收应用程序池</p>
<p><strong>四、没有正确加载ISAPI筛选器 </strong></p>
<p>  ISAPI筛选器没有加载成功的话会造成任意网站一访问就出现Service unavailable,这个时候需要根据加载失败的原因解决,或者删除该ISAPI筛选器。<br />  整理资料:<br />  原因一:网站超过了IIS连接数<br />  解决办法一:增加IIS连接数<br />  备注一:Windows 2003的操作系统在提示IIS过多时并非像win2000系统提示&ldquo;链接人数过多&rdquo;,而是提示&quot;Service Unavailable&quot;<br />  原因二:网站超过了IIS资源限制<br />  解决办法二:增加网站的资源<br />  备注二:Winodws2003中网站占用了超过IIS对该网站系统资源的限制后直接提示&quot;Service Unavailable&quot;<br />  原因三:网站的程序发生太多的错误<br />  解决办法三:修改程序错误<br />  备注三:Winodws2003中网站错误太多,就会造成该网站所在的应用程序池出错,这个时候可以在Windows2003的日志中看到&ldquo;应 用程序池 'xxx' 被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误&rdquo;,这个时候网站就会直接显示&quot;Service Unavailable&quot;<br />  以上三个原因造成的&quot;Service Unavailable&quot;,一般现象是出现&quot;Service Unavailable&quot;后,多刷新几次,就可以打开。</p>
<p>  原因四:ACCESS引擎错误</p>
<p>  解决办法四:重启IIS</p>
<p>  备注四:有一些文件造成了ACCESS数据库出现&ldquo;灾难性故障&rdquo;及&ldquo;未将对象引用设置到对象的实例&rdquo;的错误。<br />  原因四造成的&quot;Service Unavailable&quot;,现象是所有该服务器上的使用Access数据库的网站都出现错误,不能访问。<br />  以上四个原因是常见的造成了&quot;Service Unavailable&quot;的原因,其他还有一些问题造成了该问题,基本只要IIS重启一下就可以的。<br />  <font color="#ff0000">Service Unavailable的第五种原因就是今天的原因了:ISAPI筛选器没有正常加载。<br /><br /></font>每个AppPool要指定一个身份(identity)来运行。IIS6中AppPool默认运行身份为NT AUTHORITY\NETWORK SERVICE。这是一个系统内建帐户,完全受系统控制。它支持所有必要的以服务登录(Log on as a service)的权限,密码也是内部来维护&mdash;&mdash;换句话说,我们可以把以服务登录理解为它可以控制了哪些帐户能够使用、操作远程资源。我们可以通过很多方法控制远程资源的访问。比如修改远程资源ACL表,并允许远端机器访问本地资源;或者在远程访问时换作远端授信帐户(impersonating)进行操作;或者索性让我们的程序运行在某一个配置帐户下&mdash;&mdash;log on as a service。不同的是它是宿主在IIS的AppPool中的,必然收到IIS控制,用户本身没有办法像普通服务程序那样启动它。我要试验的就是指定AppPool以配置帐户启动。 <br />&nbsp;&nbsp; <br />&nbsp;&nbsp;我们分几步来部署一个web程序以指定账户运行。 <br />&nbsp;&nbsp;1. 打开IIS6,在AppPool节点找到我们要修改的web程序,右键属性。 <br />&nbsp;&nbsp;默认IIS是选择Predefined帐户:Network Service。现在我们勾选Configurable,并指定帐户和密码。注意:这个帐号必须是一个域帐号! <br />&nbsp;&nbsp;2. 将我们之前指定的apppool帐号加入IIS_WPG用户组中。IIS_WPG用户组维护了所有可以以其中帐户启动worker Process的帐户。Worker Process是由IIS启动的。 <br />&nbsp;&nbsp; <br />&nbsp;&nbsp;做完这两步,本以为可以完美的开启自定义帐户运行的w3wp.exe。却不想得到&quot;Service Unavailable&rdquo;的异常。翻看event log,我们得到以下一些错误: <br />&nbsp;&nbsp;错误一:此错误基本就是重复一下Service Unavailable的意思。。。注意主谓关系:有某某后台要启动某个process来运行appPool。这个process肯定就是w3wp.exe。但那个后台是谁?这里还不知道。 <br />&nbsp;&nbsp; <br />&nbsp;&nbsp;Event Type: Error <br />&nbsp;&nbsp;Event Source: W3SVC <br />&nbsp;&nbsp;Event Category: None <br />&nbsp;&nbsp;Event ID: 1059 <br />&nbsp;&nbsp;Date: 1/18/2008 <br />&nbsp;&nbsp;Time: 11:48:27 AM <br />&nbsp;&nbsp;User: N/A <br />&nbsp;&nbsp;Computer: HITOMI <br />&nbsp;&nbsp;Description: <br />&nbsp;&nbsp;A failure was encountered while launching the process serving application pool 'HITOMIWS'. The application pool has been disabled. <br />&nbsp;&nbsp; <br />&nbsp;&nbsp;For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp. <br />&nbsp;&nbsp;错误二:已经告诉我们所指定的appPool帐户非法。另外一个极重要的提示回答了error一的疑惑:是World Wide Web Publishing Service无法启动w3wp.exe。(这里也回答了文章最初的问题)至此,唯一的问题就是为什么帐户非法?往下看。。。 <br />&nbsp;&nbsp; <br />&nbsp;&nbsp;Event Type: Warning <br />&nbsp;&nbsp;Event Source: W3SVC <br />&nbsp;&nbsp;Event Category: None <br />&nbsp;&nbsp;Event ID: 1057 <br />&nbsp;&nbsp;Date: 1/18/2008 <br />&nbsp;&nbsp;Time: 11:48:27 AM <br />&nbsp;&nbsp;User: N/A <br />&nbsp;&nbsp;Computer: HITOMI <br />&nbsp;&nbsp;Description: <br />&nbsp;&nbsp;The identity of application pool 'HITOMIWS' is invalid, so the World Wide Web Publishing Service can not create a worker process to serve the application pool. Therefore, the application pool has been disabled. <br />&nbsp;&nbsp; <br />&nbsp;&nbsp;For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp. <br />&nbsp;&nbsp; <br />&nbsp;&nbsp;错误三:谜底揭晓了。该账户没有被赋予logontype4,导致它非法。如果有经验的话,这种帐户-logonType控制是在local Security Settings\Local Policy\User Rights Assignments里定义的。具体来说就是log on as a service。 <br />&nbsp;&nbsp; <br />&nbsp;&nbsp;Event Type: Failure Audit <br />&nbsp;&nbsp;Event Source: Security <br />&nbsp;&nbsp;Event Category: Logon/Logoff <br />&nbsp;&nbsp;Event ID: 534 <br />&nbsp;&nbsp;Date: 1/18/2008 <br />&nbsp;&nbsp;Time: 11:48:08 AM <br />&nbsp;&nbsp;User: NT AUTHORITY\SYSTEM <br />&nbsp;&nbsp;Computer: HITOMI <br />&nbsp;&nbsp;Description: <br />&nbsp;&nbsp;Logon Failure: <br />&nbsp;&nbsp; Reason: The user has not been granted the requested <br />&nbsp;&nbsp; logon type at this machine <br />&nbsp;&nbsp; User Name: HITOMIWEBSERVICE <br />&nbsp;&nbsp; Domain: REDMOND <br />&nbsp;&nbsp; Logon Type: 4 <br />&nbsp;&nbsp; Logon Process: Advapi <br />&nbsp;&nbsp; Authentication Package: Negotiate <br />&nbsp;&nbsp; Workstation Name: HITOMI <br />&nbsp;&nbsp; Caller User Name: HITOMI$ <br />&nbsp;&nbsp; Caller Domain: REDMOND <br />&nbsp;&nbsp; Caller Logon ID: (0x0,0x3E7) <br />&nbsp;&nbsp; Caller Process ID: 640 <br />&nbsp;&nbsp; Transited Services: - <br />&nbsp;&nbsp; Source Network Address: - <br />&nbsp;&nbsp; Source Port: - <br />&nbsp;&nbsp; <br />&nbsp;&nbsp;For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp. <br />&nbsp;&nbsp;Start &gt; Run, secpol.msc回车, 打开local Secuirty Settings,展开Local Policy\User Rights Assignments,选择Log on as a service这个policy,果然里面有NetworkService和sql server的n多帐户,我们再把appPool帐户加到这个list里面。做完之后,machine需要重新启动。等一切再次ready以后,我们再试一下web程序,欣喜看到w3wp.exe已经以指定帐号启动了! <br />&nbsp;&nbsp;回头再考虑一下我们什么时候要用指定帐户运行web程序呢?It depends。当我们的web 程序要经常访问域内其他节点资源的时候,为提高访问安全要用到指定帐户,加强ACL控制。其实在大多数情况下NetworkService已经可以够用了。&nbsp;</p>
頁: [1]
查看完整版本: 503 service unavailable错误说明