我遇到了Visual Studio 2012的問題,這讓我瘋狂。我們正在開發一個ASP.NET Web應用程序,並且在應用程序啓動時它必須將許多內容加載到內存中。它有時需要20-30秒才能啓動並準備好服務於第一個http請求。TFS 2012 Visual Studio插件在簽出文件時立即創建並刪除「app_offline.htm」,導致ASP.NET AppDomain回收
我們使用TFS源代碼控制,基本上,每次有人編輯文件時,TFS都會將文件標記爲「已簽出」(在解決方案資源管理器中,文件名圖標旁會出現小紅色複選標記),並立即創建並刪除Web應用程序根目錄中的「app_offline.htm」文件。
這會導致Web應用程序卸載。我在Application_Start和Application_End事件中使用了日誌記錄來查找。然後我使用SysInternals Process Monitor來查看正在發生的活動。當我在procmon的神祕輸出中看到app_offline.htm時,我使用了一個名爲Directory Monitor的獨立文件系統監視器,它確認app_offline.htm確實正在創建並立即刪除。
這種連鎖反應的效果是,如果你做了一些改變,應用程序在開發過程中必須多次卸載/重新加載。這是浪費時間。
不僅如此,不斷重新加載應用程序域會導致IIS最終耗盡內存,然後我們必須執行IISRESET。
有誰知道爲什麼TFS創建這個文件?是否有任何方法阻止它?
嗨,我沒有發佈該應用程序。只是開發它。我試圖從您提到的位置刪除app_offline.htm文件,但不幸的是系統重新創建它。 – krisdyson
您是否使用Visual Studio直接在IIS下發布文件? – Microtechie
你好,根本沒有發佈,只是IIS像正常一樣指向源目錄。 thx – krisdyson