更多的內容大家還可以到:
查找更詳細的安全設置
windows2003 iis6.0假死問題解決
這幾天服務器總是運行緩慢,遠程登錄后發現一個w3wp.exe的進程占用了100% cpu。
問題的原因最終找到兩個:
1.采用的jet 數據庫連接方式存在問題:?id=838306
補丁下載:
chs:windowsserver2003-kb838306-x86-chs.exe
enu:windowsserver2003-kb838306-x86-enu.exe
2.將access數據庫擴展名改為asp
下面是我的差錯過程和解決方案:
搜索一下發現類似問題還真不少,那個w3wp的進程是iis6.0的應用程序池,網上的說法有兩種,一是因為asp或者asp.net代碼中含有死循環引起的。但是服務器上這么多網站,誰知道那個網站出了問題。二是由于上面的jet連接數據庫方式的bug引起的,下載838306的補丁,或者升級到sp1可以解決這個問題,但是打了這個補丁后,有些網站的問題依然存在。
又去搜索,有人說將每個網站建立獨立的應用程序池,應用程序池的安全性帳戶設為本地服務即可。方法如下:
首先新建應用程序池:
然后將網站的應用程序池指向剛才建立的應用程序池:
在建立完所有應用程序池后,統一修改應用程序池的屬性:
將應用程序池安全帳戶指定為本地服務:
設置完這些之后,問題依然存在,這樣一個網站出現問題,不致影響其他網站,但是這個網站仍然占用大量資源,導致其它網站響應緩慢。不過在任務管理器中出現了每個應用程序池的進程,因此可以找到具體出問題的進程了。
下面是尋找出錯網站的過程:要找到這個網站,必須把有問題的進程跟該網站的應用程序池聯系起來。首先設置任務管理器的查看方式,加入pid的顯示:
然后再命令行運行iisapp -a,可以看到pid跟應用程序池的對應關系:
再去iis中看該應用程序池對應的網站,有問題的網站就找到了,剩下的就是這個網站代碼中的問題了。
在某位網站管理員的糾纏不休下,我終于無法忍受,幫他找錯誤- - 無數次配置iis,網站程序也換了,該升級的也升級了,問題還是存在,黔驢技窮,把網站下載到本地看看到底怎么回事。當我試圖打開他的數據庫的時候,問題出現了:
他的數據庫是.asp的擴展名,要先修改為.mdb才能打開,但是當我點擊要改名字的時候,我的電腦沒有響應了~!看來問題在這個數據庫了。
用命令行rename之后,打開數據庫,修復,似乎沒有任何問題,但是再改為.asp時,又出現了剛才的問題。哈~原來是.asp的擴展名在作怪。
但是我試著將其他的數據庫改為.asp,沒有問題。根本原因不得而知,望知情者告知。
最后,在iis中隨便添加了一個isapi對應到mdb,造成mdb無法執行,防止下載,將所有的.asp的數據庫改回.mdb,問題解決。
1.w3wp.exe,應用程序,應用程序池之間的關系
一個應用程序池可以包含多個應用程序,一個應用程序池創建一個w3wp.exe進程.那么我們就不能簡單的說一個應用程序對應一個w3wp.exe進程了!
其實是多個應用程序對應一個w3wp.exe進程的.
2.如何啟動和關閉w3wp.exe這個進程
w3wp.exe這個進程將在你訪問www應用程序的時候啟動.有人就會這么問了:"我啟動了一個web應用程序,發現系統自動創建了一個w3wp.exe進程。但我關閉這個web應用程序后,發現這個剛創建的w3wp.exe進程還在,請問如何關閉該進程。"
這個進程不會在你關閉了這個程序以后,就馬上關閉的.那是因為http是無連接的訪問,當你關閉了web網頁,不會返回相應的關閉信息,所以w3wp.exe這個進程不會因為你關閉了web應用程序爾關閉.
那么如何關閉這個進程呢?在應用程序池的配置中,"空閑超時"中設定合適的時間,系統默認的是20分鐘.設定好指定的時間,那么在這個時間范圍內沒有在訪問應用程序,那么系統會自動的關閉w3wp.exe這個進程的.而不需要我們人為的干預的.
要是你有這個精力的話,也可以在windows任務管理器里面,結束這個進程的生命(^_^)!
3.如何讓w3wp.exe進程長時間的運行.
w3wp.exe這個進程的默認生命是1740分鐘,但依然是在這種默認的自然規律下,w3wp.exe將在自己失業20分鐘后,被系統直接槍殺.
這樣就可以看出,要想讓w3wp.exe長時間的生存,那我們可以通過”空閑超時”不作處理來達到我們的目的.
這樣可是缺點多多,但是為了達到個人的私欲,這又算什么.本來也不是什么正式的項目.
4.如何降低w3wp.exe占用的內存和cpu
結合網上的諸多建議,主要的解決辦法是:
a.在iis中對每個網站進行單獨的應用程序池配置;
b.合理的配置你的應用程序池;
新聞熱點
疑難解答
圖片精選