重新啓動IIS網站,我正在尋找一種方法來從一個MVC控制器重新開始(從管理頁面) 當前運行的網站,用C#.NET從MVC控制器
爲什麼我需要它? 我有一個網站的錯誤,但它只發生在網站運行一個隨機的時間,這使得它真的很難找到, 同時我仍然需要一個遠程的方式來從我的手機快速重新啓動,如果需要的網站。
重新啓動IIS網站,我正在尋找一種方法來從一個MVC控制器重新開始(從管理頁面) 當前運行的網站,用C#.NET從MVC控制器
爲什麼我需要它? 我有一個網站的錯誤,但它只發生在網站運行一個隨機的時間,這使得它真的很難找到, 同時我仍然需要一個遠程的方式來從我的手機快速重新啓動,如果需要的網站。
ASP.NET應用程序可能會重新啓動,因爲真正有很多原因。它可能比你想象的更頻繁地發生。 ASP.NET web應用程序 將因以下原因重新啓動:
- Web.Config文件中的更改。更改任何參數,添加空格字符,甚至更改文件的修改日期都將導致重新啓動應用程序。
- 更改machine.config,就像web.config一樣。
- 更改/ bin文件夾。如果您添加,更新或刪除/ bin文件夾中的任何文件,應用程序將重新啓動。
- 更改App_Code文件夾。在App_Code中添加,刪除或編輯類將導致應用程序重新啓動。
- 更改Global.asax文件,就像在web.config中一樣。
- 變化App_LocalResources文件夾
- 變化App_GlobalResources文件夾
- 變化App_WebReferences夾
- 變化資料配置
- 達成彙編限制,在machine.config文件與numRecompilesBeforeAppRestart定義。默認值是15. ASP.NET監視文件中的任何更改。當某些數字(默認爲15)被更改時,Web應用程序會自動重新啓動 。這是爲了節省服務器上的內存。在 動態生成文件的一些網站,這可能會導致 頻繁重新啓動。
- 防病毒軟件更改文件的修改日期。防病毒程序掃描文件,如Web.config或Global.asax。某些防病毒程序 更改這些文件的修改日期,並導致頻繁重新啓動 ,這會降低網站性能。
- IIS重新啓動,所有網站也將重新啓動。
- 更改物理路徑到網絡應用程序
- 由於不活動而導致IIS回收的網站(默認20分鐘)。如果網站沒有訪問者,IIS將從內存中卸載它以節省 資源。當下一位訪問者 到來時,申請將再次開始。
這是我通常會重新啓動應用程序。
從代碼中調用UnloadAppDomain
,儘管需要完全信任權限才能這樣做。
System.Web.HttpRuntime.UnloadAppDomain()
刻意改變gloabl.asax或web.config文件的修改日期屬性
File.SetLastWriteTimeUtc(MapPath("~/global.asax"), DateTime.UtcNow);
File.SetLastWriteTimeUtc(MapPath("~/web.config"), DateTime.UtcNow);
你一定要明白,如果它是在相同的應用程序託管了這會重新啓動一切,包括管理頁面? –
你嘗試過什麼嗎? – yaakov
是的,但我需要一些東西 – CMS