原來IIS為了保護服務器,有一個“回收”的概念!測試了半天終于有了點大體了解(不要笑我菜^-^)。先來看看這個“回收”在哪設置。
啟動IIS管理器->應用程序池->右鍵->屬性->回收選項卡,有一項是默認就起作用的,就是第一項:“回收工作進程(分鐘)”默認值1740分鐘,大約29個小時。他是什么意思呢?我個人理解:在session.timeout之后再過1740分鐘自動把所有仍在保持的session清除。這個值最大可設為4000000,大概是2700多天!我直接取消了,不用他自動回收!問題終于解決。
另外這個屬性對話框中還有其它幾項:第二項應該是連接的用戶超過了一定數目回收。第三項是到某一個時間就自動回收。在“性能”選項卡中“在空閑此時間段后關閉工作進程”,這里就是設置IIS默認session.timeout時間的地方了。默認值20分鐘,這里同樣最大值可設為4000000,和在ASP頁中設置
session.timeout最大值為1440不同。
1
IIS6,SESSION超時時間過短的解決。通常在主目錄->配置->應用程序選項重設置會話時間,默認20,單位分鐘。另外還可以修改配置文件METABASE.XML的ASPSESSIONTIMEOUT項實現。但這次沒有起作用。去掉了站點本身的可能,最后把目標放在應用程序池上。打開網站對應的應用程序池屬性,將WEB園數量改為1。重啟IIS后,session正常。
2
IIS6下面默認SESSION的超時時間是20秒,造成一些程度認證信息丟失,檢查發現這是由于META-BA**.*ML的設置里面ASPSESSIONTIMEOUT="20"引起的。一般可以考慮改為900或者1200。
這個設置文件在WINDOWS\SYSTEM32\INETSRV下面。
注意修改之前需要停掉IISADMIN服務。改完了重啟W3SVC就可以用了。
3
應用程序池DefaultAppPool關閉超時錯誤2007年03月15日 12:15今天服務器產生“應用程序池 'DefaultAppPool' 提供服務的進程關閉時間超過了限制。進程 ID 是 '2068'。”的錯誤,導致iis處于假死狀態,而這樣的情況在前期數量少的網站情況下沒有發生。后來通過搜索相關網站,才了解是IIS應用程序池的設置問題。解決方法如下:
右擊應用程序池DefaultAppPool,選取屬性:
一、回收
1、回收工作進程(分鐘):選中,值為1740
2、回收工作進程(請求數目):不選(原先設置為35000)
3、在下列時間回收工作進程:不填
4、消耗太多內存時回收工作進程:全不選。(2、3、4項可能避免了在訪問量高的時候強制回收進程可能引發的服務器響應問題,導致iis假死不響應)
二、性能
只選中空閑超時20分鐘。其他都不選。WEB園最大工作進程數為1(默認)。注意web園這里一定要保持默認,如果填寫其他超過1的數字就會導致一些網站程序的后臺程序打不開或者刷新不停。
原來的請求隊列限制為4000,現在無限制。
三、運行狀況
前兩項都起用,是原來的默認設置。啟動時間限制90秒,關閉時間限制180秒。
“關閉時間限制180秒”是必須的,因為進程關閉的時間,原來為90秒限制,是默認值,如果進程關閉時間超過90秒,則認為超時,從而出現:進程關閉時間超過了限制 日志,所以,適當延長這個時間,可以避免這種錯誤