一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - 巧用ASP.NET預編譯Web應用程序規避調用延遲的方法

巧用ASP.NET預編譯Web應用程序規避調用延遲的方法

2019-09-18 11:01asp.net教程網 ASP.NET教程

ASP.NET 1.x的開發人員常常聽到用戶抱怨首次調用應用程序的時候會碰到初始化延遲。畢竟,初次請求會引發一個系列過程,包括運行庫初始化、分析、把ASPX頁面編譯成中間語言、把方法即時編譯成本地代碼等等。

自從ASP.NET面市以來,開發人員一直都在要求(微軟)出臺一個解決辦法,而ASP.NET 2.0利用預編譯提供了一個有效的解決方案。

預編譯選項

在首次啟動應用程序的時候,ASP.NET會動態地分析和編譯所有的ASP.NET文件(aspx頁面)。運行環境要對編譯的結果進行緩沖,以便更好地服務未來所有的請求。

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

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

命令行

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

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

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

m:這個參數表示您將使用完整的、應用程序將被預編譯的IIS元數據庫路徑。IIS元數據庫的路徑是/LM/W3SVC/1/Root/應用程序名。

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

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

f:表示目標目錄是否要被覆蓋。

u:用來設置預編譯完的應用程序是可以更新的。這表示所有的標記文件(ASPX、ASCX等等)都可以在目標目錄里進行更新。

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

如果沒有指定目標目錄,那么結果文件會被放在ASP.NET的臨時文件目錄里,就像在ASP.NET運行庫在首次調用應用程序的時候處理編譯一樣。臨時目錄默認的路徑如下:

c:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727\\Temporary ASP.NET Files\\應用程序名

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

隱藏源代碼

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

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

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

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

Visual Studio的支持

在使用Visual Studio 2005開發基于ASP.NET的應用程序時,預編譯是可選的。“發布Web站點(Publish Web Site)”菜單選項讓您能夠把網站作為一個預編譯應用程序推到另一個位置。此外,上面還有一個復選框讓您設置可更新選項。

總結

ASP.NET 2.0的預編譯選項讓您能夠預編譯Web應用程序,以避免(像一般編譯一樣)首次調用應用程序的延遲。此外,它還提供了一定的安全性,因為程序的源代碼在結果中是不可見的,所有的內容文件都可以被隱藏。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 热巴在公交车h文 | 日日插插 | 国亚洲欧美日韩精品 | 皇上好大好硬好涨好深好爽 | 日韩国产成人精品视频人 | 日本www色| 性一交一无一伦一精一品 | 手机在线观看伦理片 | 日本美女动态图片 | 成人免费视频播放 | 艾秋果冻麻豆老狼 | 欧美x×x | 逼中极品 | 狠狠色婷婷丁香六月 | 亚洲欧美日韩综合在线 | 欧美疯狂做爰3xxx | 国产精品99爱免费视频 | 国产成人激情视频 | 欧美另类老女人 | 国产美女操| 性色欲情网站IWWW九文堂 | 欧美日韩导航 | 日日操日日舔 | 欧美日韩国产成人综合在线影院 | 免费观看在线观看 | 亚洲乱码一二三四五六区 | 99午夜高清在线视频在观看 | 香蕉成人999视频 | 门房秦大爷在线阅读 | 九九热综合 | 成人中文字幕在线高清 | 操丝袜秘书| 亚洲上最大成网人站4438 | 亚洲精品电影天堂网 | 四虎永久免费地址在线网站 | 国产亚洲99影院 | 国模人体aⅴ | 久久久久久久久a免费 | 关晓彤被调教出奶水的视频 | 性xx色3d动画xx无尽 | 国产一久久香蕉国产线看观看 |