国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

如何充分利用ASP.NET 2.0預(yù)編譯

2024-07-10 13:09:28
字體:
供稿:網(wǎng)友

  asp.net 1.x的開發(fā)人員常常聽到用戶抱怨首次調(diào)用應(yīng)用程序的時(shí)候會(huì)碰到初始化延遲。畢竟,初次請(qǐng)求會(huì)引發(fā)一個(gè)系列過程,包括運(yùn)行庫初始化、分析、把a(bǔ)spx頁面編譯成中間語言、把方法即時(shí)編譯成本地代碼等等。

  自從asp.net面市以來,開發(fā)人員一直都在要求(微軟)出臺(tái)一個(gè)解決辦法,而asp.net 2.0利用預(yù)編譯提供了一個(gè)有效的解決方案。

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

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

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

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

  命令行

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

  c://microsoft.net

  /framework/v2.0.5072/aspnet_compiler.exe

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

  m:這個(gè)參數(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ū)動(dòng)器名和指向應(yīng)用程序目錄的完整路徑。舉個(gè)例子c:/inetpub/wwwroot/應(yīng)用程序名。v這個(gè)參數(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ù)編譯了一個(gè)應(yīng)用程序:aspnet_compiler.exe –v /應(yīng)用程序名 c:/目標(biāo)目錄名。

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

  c:/windows/microsoft.net/framework

  /v2.0.50727/temporary asp.net files/應(yīng)用程序名

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

  隱藏源代碼

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

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

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

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

  visual studio的支持

  在使用visual studio 2005開發(fā)基于asp.net的應(yīng)用程序時(shí),預(yù)編譯是可選的。“發(fā)布web站點(diǎn)(publish web site)”菜單選項(xiàng)讓您能夠把網(wǎng)站作為一個(gè)預(yù)編譯應(yīng)用程序推到另一個(gè)位置。此外,上面還有一個(gè)復(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)容文件都可以被隱藏。

最大的網(wǎng)站源碼資源下載站,

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 油尖旺区| 历史| 佳木斯市| 朔州市| 大余县| 白城市| 淅川县| 定结县| 清河县| 海阳市| 三门峡市| 望城县| 台江县| 兴安县| 额敏县| 溆浦县| 上犹县| 明星| 阳江市| 霍林郭勒市| 嘉祥县| 新源县| 稷山县| 孝义市| 巴楚县| 元阳县| 安康市| 云林县| 澳门| 自治县| 齐河县| 法库县| 平谷区| 镇坪县| 光泽县| 奇台县| 朝阳市| 马鞍山市| 华坪县| 和硕县| 巴南区|