異常代碼: 0xc0000374
WEB環(huán)境: Windows Server 2008 R2+IIS7.5+fastCGI+PHP+mysql IIS7.5中的某個(gè)網(wǎng)站每過一段時(shí)間后就打不開,打開首頁出現(xiàn)503錯(cuò)誤,頁面提示如下: 點(diǎn)擊"開始"-"控制面板"-"管理工具"-"組件服務(wù)"-"計(jì)算機(jī)"-"我的電腦"-"DCOM"選項(xiàng), 選擇其下的"IIS ADMIN SERVICE",右健選擇"屬性",找到"安全",在"啟動(dòng)和激活權(quán)限"中編輯"自定義",添加帳號(hào)"NETWORK SERVICE ", 給該帳號(hào)賦予"本地啟動(dòng)"和"本地激活"的權(quán)限,重新啟動(dòng)IIS即可("開始"-"運(yùn)行"-"CMD",點(diǎn)確定,然后運(yùn)行IISRESET)。奇怪的是我在Win2008 R2上正常安裝了IIS,在DCOM選項(xiàng)中卻沒有"IIS ADMIN SERVICE"選項(xiàng),系統(tǒng)服務(wù)列表中也沒有該服務(wù)。導(dǎo)致所有的.net程序都無法正常運(yùn)行。(系統(tǒng)中沒有"IIS ADMIN SERVICES"服務(wù)和DCOM選項(xiàng)的解決方法:這一般是IIS系統(tǒng)角色未完全安裝導(dǎo)致的,在服務(wù)器管理器中將IIS角色服務(wù)里的"管理工具"全部安裝即可,最重要的是要安裝"管理工具"下的"管理服務(wù)")。 聚友已經(jīng)總結(jié)了五種Service Unavailable的原因,第一篇是常見的4個(gè)方面的原因(原文見http://www.juyo.org/juyo/original/Service-Unavailable/),之后又遇到一個(gè)服務(wù)器上網(wǎng)站出現(xiàn)這個(gè)情況,朋友對(duì)照了那四種情況,均沒有找到其原因,于是我上該服務(wù)器上查看,最終得以解決(原文見http://www.juyo.org/juyo/work/Service-Unavailable-2/),今天就遇到了第六種Service Unavailable的情況,剛剛安裝的IIS就出現(xiàn)了Service Unavailable,都不在那五種內(nèi),于是上服務(wù)器查看解決。因?yàn)槭切卵b的IIS服務(wù)器,一般來說問題不可能出在IIS本身,出現(xiàn)這樣的問題一般先從權(quán)限方面考慮,先考慮IIS服務(wù)的啟動(dòng)帳戶沒有權(quán)限啟動(dòng)IIS。單擊“開始”——“設(shè)置”——“控制面板”——“管理工具”——“服務(wù)”,打開本地服務(wù)管理器,找到IIS Admin Service,雙擊打開IISADMIN屬性,選擇“登陸”選項(xiàng)卡,顯示登陸身份為本地系統(tǒng)帳戶,那IISADMIN服務(wù)就沒有權(quán)限問題。單擊“開始”——“設(shè)置”——“控制面板”——“管理工具”——“服務(wù)”,打開本地服務(wù)管理器,找到World Wide Web Publishing Service,雙擊打開W3SVC服務(wù)屬性,選擇“登陸”選項(xiàng)卡,顯示登陸身份為本地系統(tǒng)帳戶,那W3SVC服務(wù)就沒有權(quán)限問題。(這里為了更加易操作,將打開“服務(wù)”的操作重新說了一遍)從這里可以排除了服務(wù)啟動(dòng)帳號(hào)沒有權(quán)限啟動(dòng)的問題,下面還是回到終極解決方法中來?,F(xiàn)象:單擊“開始”——“設(shè)置”——“控制面板”——“管理工具”——“事件查看器”,打開事件查看器,單擊“系統(tǒng)”,看到很多警告和錯(cuò)誤,主要是以下幾個(gè): 1)來源是“W3SVC”、事件ID為“1002”的錯(cuò)誤,描述是“應(yīng)用程序池 'DefaultAppPool' 被自動(dòng)禁用,原因是為此應(yīng)用程序池提供服務(wù)的進(jìn)程中出現(xiàn)一系列錯(cuò)誤?!?2)來源是“W3SVC”、事件ID為“1009”的警告,描述是“為應(yīng)用程序池 'DefaultAppPool' 提供服務(wù)的進(jìn)程意外終止。進(jìn)程 ID 是 '1756'。進(jìn)程退出代碼是 '0xffffffff'?!?3)來源是“DCOM”、事件ID為“10016”的錯(cuò)誤,描述是“應(yīng)用程序-特定 權(quán)限設(shè)置未將 COM 服務(wù)器應(yīng)用程序(CLSID 為{A9E69610-B80D-11D0-B9B9-00A0C922E750})的 本地 激活 權(quán)限授予用戶 NT AUTHORITY\NETWORK SERVICE SID (S-1-5-20)??梢允褂媒M件服務(wù)管理工具修改此安全權(quán)限?!?分析:通過這幾個(gè)事件可以判定應(yīng)該是第三個(gè)事件ID為“10016”的DCOM錯(cuò)誤引起了事件ID為1009的應(yīng)用程序池意外退出,從而造成事件ID為1002的應(yīng)用程序池被自動(dòng)禁用的W3SVC錯(cuò)誤,下面就來解決。問題確定:通過DCOM錯(cuò)誤的提示,原因是NETWORK SERVICE用戶沒有權(quán)限啟動(dòng){A9E69610-B80D-11D0-B9B9-00A0C922E750},找到了原因,下面就來解決這個(gè)問題先查找這個(gè)CLSID{A9E69610-B80D-11D0-B9B9-00A0C922E750}對(duì)應(yīng)的服務(wù),單擊“開始”——“運(yùn)行”,輸入“regedit”啟動(dòng)注冊表編輯器,在注冊表編輯器的左側(cè)樹中選中“我的電腦”,再使用快捷鍵“Ctrl+F”打開查找對(duì)話框,在“查找目標(biāo)”后輸入剛才的CLSID:“{A9E69610-B80D-11D0-B9B9-00A0C922E750}”,“查看”的復(fù)選框中只保留“項(xiàng)”,回車執(zhí)行查找任務(wù)。查找到該CLSID,在注冊表編輯器右側(cè)顯示了該CLSID的信息,從該信息得知,該CLSID對(duì)應(yīng)的服務(wù)是IIS Admin Service,現(xiàn)在就可以確定NETWORK SERVICE用戶沒有權(quán)限啟動(dòng)IIS Admin Service。打開“開始”-“控制面板”-“管理工具”-“組件服務(wù)”-“計(jì)算機(jī)”-“我的電腦”-“DCOM配置”選項(xiàng),找到“IIS Admin Service”,右健選擇“屬性”,找到“安全”,在“啟動(dòng)和激活權(quán)限”中編輯“自定義”,添加帳號(hào)“NETWORK SERVICE ”, 賦予“本地啟動(dòng)”和“本地激活”的權(quán)限,重新啟動(dòng)IIS。重啟IIS,再次打開網(wǎng)頁,現(xiàn)在已經(jīng)正常顯示了。第六種原因造成service unavailable圓滿解決。