IIS應用程式集區假死、自動重啟以及iis許可權等解決辦法

來源:互聯網
上載者:User
 網路上有關iis的問題和相關解決方案,多不勝搜,但很多都比較零散,沒有系統的解決方案;另外,有些解決方案,似是而非,不能找到其中的問題關鍵點,本人平時對於伺服器的應用上也有點實踐,因此,今天稍稍總結一點平時遇到地問題和解決方案,特別是對iis的特殊許可權引起問題、iis應用程式集區假死問題和比較罕見的iis重啟命令和自動重啟辦法。其它相關問題,繼續關注本博。

一、2003應用程式集區自動死了,不能恢複了,一直出現 Service Unavailable 常見方法如下。

1:沒有打SP1補丁的時候會出現這個IIS6.0假死問題,但現在微軟都在自動更新裡面出補丁了,一般你打好最新補丁後是不會出現此問題了。(所以現在的IIS假死與這個關係不是很大)

2:從IIS6.0開始CPU資源都在應用池裡面限制了,不象以前的IIS.5。所以假死的池的緣故就是池被拉死,你在網站打不開的時候可以看到你的某個應用池是禁用的,上面出現一個紅叉。你滑鼠右鍵啟動網站又會自動回復。 這個原因:大概是以下幾個因數造成的。

(1):你限制了應用池的資源,限制得太小 比如:50這樣或更少更多一點,這個時候如果你這個池下面的網站佔用CPU太高,比如超過50% 那麼5分鐘後他就自動死了,手工預設建立的應用池預設是超過資源不操作。
出現上面這個情況解決方案:1:不限制CPU資源,(這個是不可取的,不限制資源,有的程式有BUG佔用資源厲害了的,伺服器都會被拉死,你可能都無法動作伺服器。)2:在超過資源那裡選擇關閉,這個關閉預設是失敗5次,90秒內恢複,一般預設就可。網站能自動回復,這個關閉:不是永久關閉,意思是超過資源關閉,然後在某時間內自動回復池。不操作就是不恢複,這個是很多人的誤區。

(2):記憶體限制 在IIS6.0應用池上面有虛擬記憶體和最大記憶體限制,如果你設定了這個。那麼網站訪問量大了 也會出現假死,所以不建議設定這裡。預設就可。

3:就是伺服器自身記憶體太小,網站運行當然需要使用到記憶體了,當記憶體不夠的時候應用池也會死掉變成禁用。那麼只有等記憶體全部釋放出來才能恢複應用池了。出現這個情況:那麼你就要考慮加記憶體或者檢查到底是什麼程式佔用了記憶體了。比如MSSQL資料庫,這個可是吃記憶體得大戶啊,最好別和WEB伺服器同時一個伺服器上。很多人用1G記憶體做 2003系統,2003NET結構是很佔用記憶體的,所以做伺服器選2003還得把記憶體加到2G或更高才好。 記憶體不夠上面 2點講到的,是沒辦法操作了,也無法自動回復。

4:就是ACCESS資料庫太大或查詢太多,這個也會出現把IIS拉死,解決方案;修複ACCESS資料庫,或盡量少用ACCESS資料庫,升級至sqlserver資料庫;或者在技術方面革新,像現在有些網站系統,風訊、動易等cms;pjblog、zblog等部落格程式,都支援產生靜態功能.

5:不同網站用不同應用池:根據你自己實際情況而定,網站大的最好獨立一個應用池,限制他的資源超過了自動回收,看上面(1)講到的,這樣就不影響其他網站。中型網站:多個網站共用一個應用池,比如5個網站用一個池,設定他資源時間等等。這樣他們就算超資源了也不影響其他應用池的網站。

6:設定回收時間:很多人以為設定回收池越短越好,其實是錯誤的,每次回收當然是把記憶體回收回來了,但加重了一次伺服器的負擔,當伺服器比較繁忙的時候,有可能導致其他應用池死。所以建議設定共1000就行了。其他獨立池按照他網站流量而設定 可以設定600 也行,共用的不建議設定太短。

7:網站後台過不了多久自動結束又要重新登陸:這個情況就是你設定回收時間太短了,按照 6點設定吧。 不要設定什麼20分、30分這樣的,這樣不好的。另外一個原因就是和站的響應設定時間有關,設定得稍長些。

8:windows 2003系統iis6訪問原生網站時提示“Service Unavailable”;
查看iis的應用程式集區,狀況提示為:未指定錯誤,同時應用程式集區自動停止運行;

用事件檢視器查看系統錯誤記錄檔,發現如下提示:
-----------------------------------
應用程式-特定 使用權限設定未將 COM 伺服器應用程式(CLSID 為
{A9E69610-B80D-11D0-B9B9-00A0C922E750}
)的 本地 啟用 許可權授予使用者 NT AUTHORITY\NETWORK SERVICE SID (S-1-5-20)。可以使用元件服務管理工具修改此安全許可權。

解決方案,給NETWORK SERVICE 加上訪問iis服務的許可權,具體方法如下:

點擊“開始”-“控制台”-“管理工具”-“元件服務”-“電腦”-“我的電腦”-“DCOM”選項,
選擇其下的“IIS ADMIN SERVICE”,右健選擇“屬性”,找到“安全”,在“啟動和啟用許可權”中編輯“自訂”,添加帳號“NETWORK SERVICE ”,給該帳號賦予“本地啟動”和“本地啟用”的許可權,重新啟動IIS之後再訪問同一網站,則一切正常。

9:重啟IIS中的特定應用程式集區命令和自動重啟的方法

在作業系統是Windows server 2003 SP1+的情況下,可以用以下命令部分重啟IIS應用程式集區:

cscript.exe c:\windows\system32\iisapp.vbs /a "DefaultAppPool"

其中/a 代表alternatively,"DefaultAppPool"代表應用程式集區的執行個體名。如果要設定自動重啟這個應用程式集區,可以嘗試放在批處理中,用計劃任務調用此批處理即可。很多人覺得計劃任務不安全,都要禁掉,事實上,計劃任務的不安全是建立在其它方面不安全的前提上的,如果由於其它方面的不安全,被放入執行程式,計劃任務執行,這和計劃任務沒有直接關係。當然,關掉,是會減少一些安全隱患,這是不錯。

原文地址:http://www.cnblogs.com/eng308/archive/2010/03/28/1699031.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.