Service Unavailable

Service Unavailable

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

基本介紹

  • 中文名:系統警告提示
  • 外文名:Service Unavailable
  • 產生原因:程式占資源太多或者太多的錯誤
  • 解決方法:刷新
出現原因,解決方法,解決方案,整理資料,

出現原因

Service Unavailable的出現一般是資源不足,如IISCPU或記憶體等,極少數情況下會因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連線埠的。

熱門詞條

聯絡我們