2011-02-14 80 views

回答

3

我想,創建一個靜態類與靜態consructor分配屬性DateTime.Now

+0

它可能工作,但結果不是我所期望的。似乎應用程序可以回收,如果它沒有太多使用。 – 2011-02-14 15:56:36

5

您可以在Global.asax中的Application_Start中設置一個靜態字段爲DateTime.Now

4

如果要放棄一個額外的變量,我想這會給你上次IIS工作進程(也稱爲應用程序池)重新啓動:

System.Diagnostics.Process.GetCurrentProcess().StartTime 

我用它來設置緩存能力,因爲頁面是基於我在應用程序啓動僅動態生成內容:

Response.Cache.SetLastModified(System.Diagnostics.Process.GetCurrentProcess().StartTime); 

有可能停止/一個應用程序池/工作進程中啓動單獨的網站,但我從this post推斷,這樣做不會重新靜態應用程序對象,所以我認爲與工作進程相關的日期可能是這裏最有用的日期。

請記住,應用程序啓動時創建的靜態應用程序變量實際上通常會讓您第一次訪問應用程序的時間爲工作進程可能很早就開始了,這讓人想起了「IIS應用程序熱身」和「IIS應用程序自動啓動」等詞語,以及關於靜態字段何時初始化的另一個討論。您選擇什麼可能取決於您是否對上一個工作進程的回收時間感興趣,或者是否對其他靜態成員的計算時間感興趣。

相關問題