Service Unavailable

Service Unavailable

Service Unavailable 是一種系統的警告提示。如果一個網站的程式占資源太多或者發生太多的錯誤,系統日誌就會提示:“應用程式池 'xxx' 被自動禁用,原因是為此應用程式池提供服務的進程中出現一系列錯誤,或者提示:應用程式池 'xxx' 超過了其作業限制設定。這時,訪問這個網站就會提示:Service Unavailable。一般系統會在30秒左右恢復正常,多刷新幾次就能正常訪問了。

出現原因

Service Unavailable的出現一般是資源不足,如IIS、CPU或記憶體等,極少數情況下會因asp 、.net和php程式錯誤導致出現。

一般情況下為多個站共用一個程式池,這個程式池可以簡單理解為資源庫,即這些站點共用這塊資源;記憶體限制為500M物理記憶體(伺服器為8G記憶體)。

如果這個資源被其中一個站用完,則程式池就會停止,所有使用這個程式池的站就會出現“Service Unavailable”的提示,直到該程式池被重新啟動。

大多數情況下,500M記憶體完全足夠使用;如果出現垃圾程式或遇到攻擊,則可能出現CPU急速上升或記憶體大量使用,這是大部分“Service Unavailable”出現的原因。從 目前我們監測的情況看,大部分是CPU占用在90%-100%之間出現的。

解決方法

刷新幾下又可以訪問

如果出現“Service Unavailable”的提示,刷新幾下又可以訪問。

出現這種情況是由於您的網站超過了iis限制造成的由於2003的作業系統在提示IIS過多時並非像2000系統提示“連結人數過多”,而是提示"Service Unavailable",出現這種情況是由於網站超過了系統資源限制造成的,主要是程式占用資源太多。

一些死循環程式,或者不最佳化的程式都會占用太多的系統資源,而系統資源明顯是有限的。不過WINDOWS2003的作業系統,各網站之間是以獨立進程運行的,不會相互影響。

另外,如果你的網站當前訪問人數過多,超過了系統的iis連線數限制,也會出現Service Unavailable的提示(win2k主機下出現連線過多就會提示:連線過多,請稍後再試;而win2003的主機剛直接提示:Service Unavailable)

沒有限制IIS連線

沒有限制IIS連線,還是遭遇Service Unavailable

多見於使用ACCESS資料庫的網站,一般使用windows 2003 IIS 6的用戶可能這個問題一直正常的系統,突然有一個網站打不開了提示: Service Unavailable 但這個網站並沒有限制IIS連線數。然後馬上影響到了別的網站,不到一會,其他的網站也全變成了 Service Unavailable 這是什麼原因呢?

我們分析後可以知道,還是MS的老問題。ACCESS引擎當了。用伺服器醫生的檔案醫生修復,查看修復結果時會發現一些檔案引起ACCESS引擎“災難性故障”及“未將對象引用設定到對象的實例”的錯誤。 通過檔案醫生修復後,系統才會恢復正常。

瀏覽一個Web站點時

瀏覽一個 Windows SharePoint Services Web 站點時,提示:Service Unavailable

Microsoft Internet 信息服務 (IIS) 6.0 中沒有正確地配置用於虛擬伺服器的應用程式池,就可能會發生此問題。

解決方案

要解決此問題,按照下列步驟操作:

1、驗證是否已為虛擬伺服器配置了應用程式池。默認的應用程式池是 MSSharePointPortalAppPool。

請按照下列步驟來確定虛擬伺服器正在使用的應用程式池。

a). 單擊“開始”,指向“管理工具”,然後單擊“Internet 信息服務 (IIS) 管理器”。

b). 展開“ServerName”,展開“Web 站點”,右鍵單擊虛擬伺服器,然後單擊“屬性”。

c). 單擊“主目錄”選項卡。 為虛擬伺服器配置的應用程式池列在“應用程式池”框中。

d). 單擊“確定”。

2、驗證應用程式池帳戶使用的密碼是否正確。IIS 不會自動輪詢 Active Directory 目錄服務中的密碼更改。如果應用程式池帳戶是一個域帳戶,其密碼已過期,則在為此帳戶重新指定一個新密碼後,您可能會收到本文“症狀”部分所描述的錯誤信息。

3、 驗證應用程式池帳戶是伺服器上的 IIS_WPG 組和 STS_WPG 組的成員。

4.、重新啟動 IIS 以回收應用程式池

沒有正確載入ISAPI篩選器

ISAPI篩選器沒有載入成功的話會造成任意網站一訪問就出現Service unavailable,這個時候需要根據載入失敗的原因解決,或者刪除該ISAPI篩選器

整理資料

原因一:網站超過了IIS連線數

解決辦法一:增加IIS連線數

備註一:Windows 2003的作業系統在提示IIS過多時並非像win2000系統提示“連結人數過多”,而是提示"Service Unavailable"

原因二:網站超過了IIS資源限制

解決辦法二:增加網站的資源

備註二:Winodws2003中網站占用了超過IIS對該網站系統資源的限制後直接提示"Service Unavailable"

原因三:網站的程式發生太多的錯誤

解決辦法三:修改程式錯誤

備註三:Winodws2003中網站錯誤太多,就會造成該網站所在的應用程式池出錯,這個時候可以在Windows2003的日誌中看到“應用程式池 'xxx' 被自動禁用,原因是為此應用程式池提供服務的進程中出現一系列錯誤”,這個時候網站就會直接顯示"Service Unavailable"

以上三個原因造成的"Service Unavailable",一般現象是出現"Service Unavailable"後,多刷新幾次,就可以打開。

原因四:ACCESS引擎錯誤

解決辦法四:重啟IIS

備註四:有一些檔案造成了ACCESS資料庫出現“災難性故障”及“未將對象引用設定到對象的實例”的錯誤

原因四造成的"Service Unavailable",現象是所有該伺服器上的使用Access資料庫的網站都出現錯誤,不能訪問。

以上四個原因是常見的造成了"Service Unavailable"的原因,其他還有一些問題造成了該問題,基本只要IIS重啟一下就可以的。

Service Unavailable的第五種原因就是今天的原因了:ISAPI篩選器沒有正常載入

出現這種情況也有可能是他人非法攻擊,導致網站流量過大·

如果超出CPU 也會出現這個提示的.

原因六:80連線埠被其它程式占用了。這是個非常隱蔽的原因,如果僅僅在IIS上所有網站都Service Unavailable,並且查看一個簡單的html頁都發“應用程式池 'xxx' 被自動禁用”錯誤,那么在控制台中執行命令"netstat -a -n -o",看看占用80連線埠的是哪個程式。如果您安裝了迅雷,請尤其注意這點,迅雷在默認情況下是要和IIS搶80連線埠的。

相關詞條

相關搜尋

熱門詞條

聯絡我們