第一種解決方案:
iis6系統預設的背景工作處理序回收時間是29個小時有很多問題是在回收背景工作處理序後出現很多問題如典型的500錯誤等經過我做伺服器的一段時間的觀察大家可以不用回收背景工作處理序而是把應用程式集區的最大使用記憶體調整到一個合適的值就可以了,因為如果設定了不回收背景工作處理序,哪麼這個應用程式集區所佔用記憶體的體積會很大並在不短增加中,我們設定了這個池最大使用記憶體的大小就控制注了這個應用程式集區的程式變化在一個合理的值裡
第二種解決方案:
IIS6的應用程式集區會經常出現一些問題
[查看系統日誌會發現下邊錯誤]
為應用程式集區 'DefaultAppPool' 提供服務的進程關閉時間超過了限制。進程 ID 是 '3484'。
[隨之而來的還有]
事件 ID ( 54 )的描述(在資源( HTTP )中)無法找到。本機電腦可能沒有必要的註冊資訊或訊息 DLL 檔案來從遠端電腦顯示訊息。您可能可以使用 /AUXSOURCE= 標識來檢索詞描述;查看協助和支援以瞭解詳細資料。下列資訊是事件的一部分: \Device\Http\AppPool.
網上查了很多資料,多說是應用程式集區無法在指定的時間內回收造成的。適當的延長時間即可解決,最開始我設定為10分鐘內必須回收。但是問題依舊。無奈只好關閉了回收,不回收的結果就是記憶體得不到釋放,一次手動回收程式池並觀察進程動態,讓我突然明白其中道理。
每個程式池都會有個獨立進程 w3wp.exe ,而在回收程式池時,系統會建立個w3wp.exe進程,用於處理新的web請求,從而慢慢釋放舊的進程。如果在指定時間內舊的進程沒有釋放完,那麼就會導致程式池出錯。
所以,把時間設長點就行了,我設成了3600秒,也就是一小時。設定之後程式池就再沒出現過問題,每天觀察伺服器,記憶體都能被很好的釋放。
下面是我的程式池設定,僅供參考。
右擊應用程式集區DefaultAppPool,選取屬性:
一、回收
1、回收背景工作處理序(分鐘):(不選)
2、回收背景工作處理序(請求數目):(不選)
3、在下列時間回收背景工作處理序:我設定為淩晨3點,因為那個時候訪問量最少,請求最少,較容易釋放資源。
4、消耗太多記憶體時回收背景工作處理序:(不選)
二、效能
空閑逾時20分鐘:(不選)
請求隊列限制:(不選)
WEB園最大背景工作處理序數為1(預設)。
三、健全狀態
啟用ping:選中
啟用快速失敗保護:不選。
啟動時間限制:900秒
關閉時間限制:3600秒。
第三種解決方案:
因為應用程式集區 DefaultAppPool 提供服務的進程關閉時間超過了限制 伺服器經常產生“應用程式集區 DefaultAppPool 提供服務的進程關閉時間超過了限制。進程 ID 是 2068。”的錯誤,導致iis處於假死狀態,經瞭解是IIS應用程式集區的設定問題。解決方案如下:
Internet 資訊服務(IIS)管理器->應用程式集區->DefaultAppPool->右擊屬性一、回收1、回收背景工作處理序(分鐘):選中,值為17402、回收背景工作處理序(請求數目):不選(原先設定為35000)3、在下列時間回收背景工作處理序:不填4、消耗太多記憶體時回收背景工作處理序:全不選。(2、3、4項可能避免了在訪問量高的時候強制回收進程可能引發的伺服器響應問題,導致iis假死不響應)
二、效能只選中空閑逾時20分鐘。其他都不選。WEB園最大背景工作處理序數為1(預設)。注意web園這裡一定要保持預設,如果填寫其他超過1的數字就會導致一些網站程式的背景程式打不開或者重新整理不停。原來的請求隊列限制為4000,現在無限制。
三、健全狀態前兩項都起用,是原來的預設設定。啟動時間限制90秒,關閉時間限制180秒。啟動快速失敗保護的鉤去掉!為了避免真的遇到很多錯誤時沒有提示,可以不關閉,只是把快速保護的保護範圍加大些,例如失敗數50次 時間段5分鐘 則關閉對應的程式。“關閉時間限制180秒”是必須的,因為進程關閉的時間,原來為90秒限制,是預設值,如果進程關閉時間超過90秒,則認為逾時,從而出現:進程關閉時間超過了限制 日誌,所以,適當延長這個時間,可以避免這種錯誤。
伺服器經常產生“應用程式集區 ‘DefaultAppPool’ 提供服務的進程關閉時間超過了限制。進程 ID 是 ‘2068′。”的錯誤,導致iis處於假死狀態,經瞭解是IIS應用程式集區的設定問題。解決方案如下:
Internet 資訊服務(IIS)管理器->應用程式集區->DefaultAppPool->右擊屬性
一、回收
1、回收背景工作處理序(分鐘):選中,值為1740
2、回收背景工作處理序(請求數目):不選(原先設定為35000)
3、在下列時間回收背景工作處理序:不填
4、消耗太多記憶體時回收背景工作處理序:全不選。(2、3、4項可能避免了在訪問量高的時候強制回收進程可能引發的伺服器響應問題,導致iis假死不響應)
二、效能
只選中空閑逾時20分鐘。其他都不選。WEB園最大背景工作處理序數為1(預設)。注意web園這裡一定要保持預設,如果填寫其他超過1的數字就會導致一些網站程式的背景程式打不開或者重新整理不停。
原來的請求隊列限制為4000,現在無限制。
三、健全狀態
前兩項都起用,是原來的預設設定。啟動時間限制90秒,關閉時間限制180秒。
啟動快速失敗保護的鉤去掉!
為了避免真的遇到很多錯誤時沒有提示,可以不關閉,只是把快速保護的保護範圍加大些,例如失敗數50次 時間段5分鐘 則關閉對應的程式。
“關閉時間限制180秒”是必須的,因為進程關閉的時間,原來為90秒限制,是預設值,如果進程關閉時間超過90秒,則認為逾時,從而出現:進程關閉時間超過了限制 日誌,所以,適當延長這個時間,可以避免這種錯誤
第2種方法:
原因:獨立進程的 記憶體堆戔消耗完了,IIS不能建立更多的進程工作空間來處理
解決方案:
1. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC
2. 在Parameters鍵下建立一個DWORD項,名字為:UseSharedWPDesktop 值為1 重啟IIS
第3種
問題已解決,發現是資料庫連接無法釋放,不知道是什麼原因,同樣的代碼在本地就是好的,在伺服器端就有問題,最後在串連串裡加入以下語句解決問題.
Pooling=true; MAX Pool Size=512;Min Pool Size=50;Connection Lifetime=30
第4種
建立應用程式集區,不同的網站引用不同程式池。