我們都知道,在ASP.NET中,第一次被瀏覽的網頁會比較慢才會做出反應,原因是第一次被瀏覽的網頁需要complier,第二次就不用再complier,但如果我們想一開始就把全部的網頁都complier好,那可以使用即時先行編譯(in-place precomplation)技術。
如果網站剛上線,或Server維護重開機,可以使用這個方便的小工具,幫我們先把全部的網頁「點一遍」,也因為每一頁都被點過了,也代表每一頁都被complier過了,所以第一位進來的仁兄,不用等那麼久。
通常使用下面範例二即可。
C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_compiler.exe /?
先行編譯 ASP.NET 應用程式的公用程式
Copyright (C) Microsoft Corporation. All rights reserved.
使用方式:
aspnet_compiler [-?] [-m metabasePath | -v virtualPath [-p physicalDir]]
[[-u] [-f] [-d] [-fixednames] targetDir] [-c]
[[-keyfile file | -keycontainer container]
[-aptca] [-delaySign]]
[-errorstack]
-? 列印這段說明文字。
-m 應用程式的完整 IIS Metabase 路徑。這個參數不能和 -v 或 -p 參數結合。
-v 要編譯的應用程式的虛擬路徑 (例如 "/MyApp")。如果已指定 -p,就會使用實體路徑尋找應用程式,否則會使用 IIS Me
tabase,並假設應用程式位於預設網站 (在
"/LM/W3SVC/1/Root" 下)。這個參數不能和 -m 參數結合。
-p 要編譯的應用程式的實體路徑。如果遺漏 -p,就會使用 IIS Metabase 尋找應用程式。這個參數必須和 -v 結合。
-u 如果已指定這個路徑,就可以更新先行編譯的應用程式。
-f 如果目標目錄已存在則覆寫。現有的內容將遺失。
-d 如果已指定,會在編譯時發出偵錯資訊。
targetDir 編譯應用程式的實體路徑。如果未指定這個路徑,則會就地先行編譯應用程式。
-c 如果已指定,先行編譯的應用程式便會完整重建。任何之前編譯過的元件都會重新編譯。已指定 targetDir 時,永遠啟
用此選項。
-keyfile 強式名稱金鑰檔的實體路徑。
-keycontainer 指定強式名稱金鑰容器。
-aptca 如果已指定,強式名稱的組件將會允許部分信任的呼叫端。
-delaysign 如果已指定,建立時組件不會完整簽署。
-fixednames 如果已指定,編譯的組件將會獲得固定的名稱。
-nologo 隱藏編譯器著作權訊息。
-errorstack 顯示可協助進行特定條件偵錯的額外偵錯資訊。
範例:
下列兩個命令功能相同,而且都倚賴 IIS Metabase。編譯完成的應用程式會部署到 c:\MyTarget:
aspnet_compiler -m /LM/W3SVC/1/Root/MyApp c:\MyTarget
aspnet_compiler -v /MyApp c:\MyTarget
下列命令會就地編譯應用程式 /MyApp。如此一來,當 HTTP 要求傳送至這個應用程式時,就不再需要進行編譯:
aspnet_compiler -v /MyApp
下列命令「不」倚賴 IIS Metabase,因為它會明確指定應用程式的實體來源目錄:
aspnet_compiler -v /MyApp -p c:\myapp c:\MyTarget
沒有留言:
張貼留言
感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。