1. 程式人生 > >IIS 請求 超時設定

IIS 請求 超時設定

asp.net 預設的 session state 模式是 in proc(程序內),資料是在網站的應用程式池裡面儲存的。這樣在 web.config 設定的超時時間,是在應用程式池沒有發生回收的基礎上才是有效的

這樣就出現了問題,為什麼應用程式池會發生回收?如何禁止應用程式池的回收,讓 session 的資料可以儲存得時間長一點呢?

一、應用程式池設定

這和 IIS 應用程式池的兩個設定有關:

【回收】裡面的【固定時間間隔(分鐘)】和【程序模型】裡面的【閒置超時(分鐘)】,這兩項的預設設定大概是二十或三十分鐘的樣子。也就是說,在應用程式池的執行時間達到設定的間隔,應用程式池會發生回收,session 會被清空;在網站空閒,即沒有請求的時間達到設定值,應用程式池會發生回收,session 會被清空。

這種回收的行為在一個正式運營的網站上面,是很不合適的。我覺得 IIS 的預設值是這樣也有點奇怪,因為預設值應該是一個最通用,適合最多人的一種設定,這兩項的預設值顯然不是。可能 windows 畢竟是最流行的桌面系統,考慮到回收可以節省資源,不影響其他的工作任務,才這樣設定的吧。伺服器一般都是單一的工作任務,不進行回收帶來的價值,明顯是高於所消耗的資源的。

所以,如上面的截圖所示,我建議把這兩項都設定為 0,禁用這兩種回收行為

二、網站屬性  高階設定

iis效能指標的各種概念:連線數、併發連線數、最大併發工作執行緒數、應用程式池的佇列長度、應用程式池的最大工作程序數詳解,感興趣的同學參考下。

一般購買過虛擬主機的朋友都熟悉購買時,會限制IIS連線數,這邊先從普通不懂程式碼使用者角度理解IIS連線數

顧名思義即為IIS伺服器可以同時容納客戶請求的最高連線數,準確的說應該叫“IIS限制連線數”

 

三、網站 會話狀態