asp.net應用程序重啓有幾個原因.在大多數情況下,應用程序重啓能夠確保潛在的錯誤或內存不足不會影響應用程序長期運行..aspx頁面過多的動態更改導致大量程序集(通常是一個頁面對應一個程序集)被加載到內存中,這也是應用程序重啓的原因之一.如果某個應用程序消耗的虛擬內存過多,則會終止應用程序,並使其重啓.asp.net運行時環境實現了許多檢查過程,在下列任何一種情況發生時,將重啓應用程序:
①達到了動態頁面編譯 的最大限度.該限度可以在web.config文件中進行配置.
②web應用程序的物理路徑被更改,或其中的任何目錄被重命名.
③應用程序根目錄下的global.asax,machine.config,web.config或bin目錄(包括其子目錄)中的文件被更改
④代碼訪問安全策略文件被更改.
⑤某個內容目錄中的太多文件發生了更改(如果這些文件是在被請求時生成的,一般會發生這種情況)
⑥用於控制asp.net工作線程的重啓/關閉設置被更改.如果不使用windows server2003的iis6.0進程模型,那麼設置會從machine.config中獲取.如果完全利用iis6.0,那麼,更改iis 管理器的應用程序池節點便會重啓相應的程序.
除了這些情況以外,可以通過調用HttpRuntime.UnloadAppDomain以編寫方式重啓應用程序.