鑑於卸載動態編譯程序集(以回收內存)的唯一方法是卸載應用程序域,SharePoint如何依靠VirtualPathProviders,特別是母版頁和頁面佈局,而不會碰到這個限制?SharePoint,VirtualPathProviders和應用程序重新啓動
重新啓動可以通過各種設置延遲,但在主頁面和頁面佈局更新和頻繁發佈時無法完全避免,是否正確?
(是否缺乏這方面的信息歸因於它在發佈模式中不常見的更多理論限制?您是否親自注意到掌握頁面或佈局導致應用程序不穩定的變化率?如果SharePoint帶有警告?)
任何利用動態WebForms(包括默認情況下,MVC視圖)的CMS-esque功能容易受到變化率不穩定的影響?
更新上非編譯頁:
無編譯頁 在ASP.NET 2.0中,編譯模型已顯著重構和擴展。網站預編譯可能是新功能最受歡迎和最響亮的要求。另一個非常有趣的功能是不編譯頁面。他們是特殊的頁面,只是永遠不會被編譯。那麼,沒有編譯頁面的最終目的是什麼?它們和靜態HTML頁面有什麼區別? 首先,通過將@Page指令中的CompilationMode屬性設置爲Never從而創建一個非編譯頁面。當請求不編譯頁面時,不會創建頁面程序集並將其保存到磁盤。而是將頁面構建器組件的一個實例緩存在內存中,並用於爲每個請求創建頁面輸出。頁面構建器是一個特殊的組件,它在構建頁面控制樹時支持頁面解析器。編譯打開時,控制樹用於獲取要編譯的類。編譯關閉時,控件樹用於獲取標記。不用說,如果您想讓程序員將自己的代碼附加到頁面上,那麼類是必需的。無編譯頁面由服務器控件和文字組成,但不包含任何代碼。
不編譯頁面不適用於每個應用程序。它們專門用於改進具有數千頁網頁的超大型網站的可擴展性。無編譯頁面不能綁定到代碼文件,也不能包含服務器端塊。在非編譯頁面中唯一可執行的代碼段是$ -expressions。沒有編譯頁面有兩個主要優點。在像SharePoint這樣的安全環境中,無編譯頁面會阻止開發人員編寫可能會導致宿主環境出現問題的潛在錯誤代碼,甚至會導致問題無法解決。在大型的基於內容的網站中,無編譯頁面避免了編譯數千頁的需要。
參考文獻:
1 - http://haacked.com/archive/2009/04/22/scripted-db-views.aspx
感謝您的回答。當然,這犧牲了可伸縮性來損害性能;否則,對於所有應用程序,默認情況下只是自動?但與裝配不同,可以根據需要回收緩存的頁面構建器。 某些鏈接: http://weblogs.asp.net/jgaylord/archive/2005/04/20/403580.aspx http://msdn.microsoft.com/en-us/library/system.web。 ui.compilationmode.aspx http://msdn.microsoft.com/en-us/library/system.web.compilation.expressionbuilder.aspx – Nariman 2009-10-17 14:02:31