主頁 > 知識庫 > 巧用ASP.NET預(yù)編譯Web應(yīng)用程序規(guī)避調(diào)用延遲的方法

巧用ASP.NET預(yù)編譯Web應(yīng)用程序規(guī)避調(diào)用延遲的方法

熱門標(biāo)簽:滄州電銷外呼系統(tǒng)價格 銀行信貸電話機(jī)器人 上海400客服電話怎么申請 溫州外呼系統(tǒng)招商 凱立德地鐵站地圖標(biāo)注 合肥ai電銷機(jī)器人費(fèi)用 天津電銷外呼系統(tǒng)違法嗎 手機(jī)外呼系統(tǒng)什么原理 400電話個人能不能辦理
自從ASP.NET面市以來,開發(fā)人員一直都在要求(微軟)出臺一個解決辦法,而ASP.NET 2.0利用預(yù)編譯提供了一個有效的解決方案。

預(yù)編譯選項(xiàng)

在首次啟動應(yīng)用程序的時候,ASP.NET會動態(tài)地分析和編譯所有的ASP.NET文件(aspx頁面)。運(yùn)行環(huán)境要對編譯的結(jié)果進(jìn)行緩沖,以便更好地服務(wù)未來所有的請求。

在服務(wù)器重啟或者Web服務(wù)器重啟之后,第一次啟動應(yīng)用程序也意味著這一過程要重新開始。而且,對應(yīng)用程序任何文件的改變都會被系統(tǒng)檢測到,而在文件發(fā)生改變之后首次運(yùn)行應(yīng)用程序也會讓這一過程再次發(fā)生。

很多Web開發(fā)人員都很討厭這種初始化延遲。而預(yù)編譯通過(預(yù)先)編譯應(yīng)用程序避免了這種延遲。

命令行

通過安裝在.NET框架2.0里的aspnet_compiler.exe程序就能夠啟動預(yù)編譯。它位于框架安裝目錄下(版本號會根據(jù)安裝的框架的版本而有所不同)。下面就是這個程序默認(rèn)的路徑:

C:\\\\Microsoft.NET \\Framework\\v2.0.5072\\aspnet_compiler.exe

您可以用-?這個命令參數(shù)查看該程序的所有參數(shù)列表,下面我就解釋一下一些可用的參數(shù):

m:這個參數(shù)表示您將使用完整的、應(yīng)用程序?qū)⒈活A(yù)編譯的IIS元數(shù)據(jù)庫路徑。IIS元數(shù)據(jù)庫的路徑是/LM/W3SVC/1/Root/應(yīng)用程序名。

v:使用需要預(yù)編譯Web應(yīng)用程序的虛擬IIS路徑。虛擬路徑的格式是:/應(yīng)用程序名。

p:使用需要預(yù)編譯Web應(yīng)用程序的物理IIS路徑。它是包括驅(qū)動器名和指向應(yīng)用程序目錄的完整路徑。舉個例子c:\\inetpub\\wwwroot\\應(yīng)用程序名。v這個參數(shù)必須和p一起用,所以編譯器能夠解析任何應(yīng)用程序的根參考。

f:表示目標(biāo)目錄是否要被覆蓋。

u:用來設(shè)置預(yù)編譯完的應(yīng)用程序是可以更新的。這表示所有的標(biāo)記文件(ASPX、ASCX等等)都可以在目標(biāo)目錄里進(jìn)行更新。

targetDir:用于預(yù)編譯應(yīng)用程序文件的目標(biāo)目錄。下面的命令用虛擬路徑和指定的目標(biāo)路徑預(yù)編譯了一個應(yīng)用程序:aspnet_compiler.exe –v /應(yīng)用程序名 c:\\目標(biāo)目錄名。

如果沒有指定目標(biāo)目錄,那么結(jié)果文件會被放在ASP.NET的臨時文件目錄里,就像在ASP.NET運(yùn)行庫在首次調(diào)用應(yīng)用程序的時候處理編譯一樣。臨時目錄默認(rèn)的路徑如下:

c:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727\\Temporary ASP.NET Files\\應(yīng)用程序名

預(yù)編譯另外一個好處是能夠捕捉在應(yīng)用程序啟動階段發(fā)生的任何錯誤。錯誤會顯示在工具里,但是不會終止編譯過程。

隱藏源代碼

預(yù)編譯的另外一個副產(chǎn)品是能夠隱藏任何或者所有的應(yīng)用程序源代碼。這意味著其他的開發(fā)人員需要利用反編譯程序或者ilasm才能夠取得您的代碼。這就行了——預(yù)編譯讓您能夠以二進(jìn)制文件的形式分發(fā)應(yīng)用程序。

目標(biāo)目錄里沒有源代碼。App_Code文件夾里的所有類都被編譯成一個或者多個二進(jìn)制文件,放到bin目錄下;目標(biāo)目錄下不會有源代碼文件(.cs、.vb、.js等等)。此外,所有的主頁面文件也會被編譯到bin目錄下,作為隱藏文件。 ASPX、ASCX和ASHX文件的所有代碼和標(biāo)記,以及相關(guān)的代碼隱藏文件都被放在bin目錄下的一個或者多個程序集里。

隱藏源代碼是毀譽(yù)參半。其他的開發(fā)人員無法以任何形式查看或者更改應(yīng)用程序——即使是Web頁面標(biāo)記也不行。而另外一方面,對應(yīng)用程序的任何改變(不論大小)都要求改變原始的源代碼、重新編譯和重新部署。這可能是一個十分耗時的過程,所以并不一定適用于所有的應(yīng)用程序。

可更新命令參數(shù)(u)讓您能夠取代這個默認(rèn)的行為。使用這個參數(shù)意味著所有的標(biāo)記文件 (ASPX、ASCX等等)都要包括在預(yù)編譯過程的輸出里。一旦應(yīng)用程序被部署,這些文件仍然能夠用于編輯和更新。在應(yīng)用程序被應(yīng)用之后,小的布局問題可以通過源文件來處理,所以這是一個非常理想的參數(shù)。

Visual Studio的支持

在使用Visual Studio 2005開發(fā)基于ASP.NET的應(yīng)用程序時,預(yù)編譯是可選的?!鞍l(fā)布Web站點(diǎn)(Publish Web Site)”菜單選項(xiàng)讓您能夠把網(wǎng)站作為一個預(yù)編譯應(yīng)用程序推到另一個位置。此外,上面還有一個復(fù)選框讓您設(shè)置可更新選項(xiàng)。

總結(jié)

ASP.NET 2.0的預(yù)編譯選項(xiàng)讓您能夠預(yù)編譯Web應(yīng)用程序,以避免(像一般編譯一樣)首次調(diào)用應(yīng)用程序的延遲。此外,它還提供了一定的安全性,因?yàn)槌绦虻脑创a在結(jié)果中是不可見的,所有的內(nèi)容文件都可以被隱藏。

標(biāo)簽:洛陽 白城 七臺河 酒泉 赤峰 怒江 金華 溫州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《巧用ASP.NET預(yù)編譯Web應(yīng)用程序規(guī)避調(diào)用延遲的方法》,本文關(guān)鍵詞  巧用,ASP.NET,預(yù),編譯,Web,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《巧用ASP.NET預(yù)編譯Web應(yīng)用程序規(guī)避調(diào)用延遲的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于巧用ASP.NET預(yù)編譯Web應(yīng)用程序規(guī)避調(diào)用延遲的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章