1. 程式人生 > >在ASP.NET中使用Session、Cache與Application時注意IIS應用程式池的空閒超時

在ASP.NET中使用Session、Cache與Application時注意IIS應用程式池的空閒超時

在.NET的ASP.NET、ASP.NET MVC與WebService等應用中,常常使用Session、Cache或Application儲存伺服器端共享資料,如果沒有使用SqlServer儲存這些緩衝區資料,那麼就存在超時與過期問題:超時後Session和Cache就過期清空了。

雖然可以在程式中配置或設定Session和Cache的超時時間,但還要需要注意一點的是,IIS也有一個與這些緩衝區超時過期密切相關的元件:應用程式池。該元件如下兩個引數與緩衝區超時回收有關(筆者是Windows10自帶的IIS6,應用程式池託管管道模式配置為“整合”方式):

  • “空閒超時(分鐘)”:預設是20分鐘。超過20分鐘後將執行下面的兩個操作之一。
  • “空閒超時操作”:預設是“Terminate”(另一個選項是“Suspend”)。Terminate表示一旦超時就終止服務,並回收工作程序的緩衝區的記憶體;Suspend則懸停等待,暫不回收緩衝區記憶體。

總之,如果配置的超時時間大於20分鐘,就要設定IIS的應用程式池的“空閒超時”時間等於或大於伺服器程式中超時。