最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2011年08月18日 15:46:03   作者:  
ASP.NET 1.x的開(kāi)發(fā)人員常常聽(tīng)到用戶抱怨首次調(diào)用應(yīng)用程序的時(shí)候會(huì)碰到初始化延遲。畢竟,初次請(qǐng)求會(huì)引發(fā)一個(gè)系列過(guò)程,包括運(yùn)行庫(kù)初始化、分析、把ASPX頁(yè)面編譯成中間語(yǔ)言、把方法即時(shí)編譯成本地代碼等等。
自從ASP.NET面市以來(lái),開(kāi)發(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è)面)。運(yùn)行環(huán)境要對(duì)編譯的結(jié)果進(jìn)行緩沖,以便更好地服務(wù)未來(lái)所有的請(qǐng)求。

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

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

命令行

通過(guò)安裝在.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ù)庫(kù)路徑。IIS元數(shù)據(jù)庫(kù)的路徑是/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:用來(lái)設(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)目錄名。

如果沒(méi)有指定目標(biāo)目錄,那么結(jié)果文件會(huì)被放在ASP.NET的臨時(shí)文件目錄里,就像在ASP.NET運(yùn)行庫(kù)在首次調(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ì)終止編譯過(guò)程。

隱藏源代碼

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

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

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

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

Visual Studio的支持

在使用Visual Studio 2005開(kāi)發(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é)果中是不可見(jiàn)的,所有的內(nèi)容文件都可以被隱藏。

相關(guān)文章

  • ASP.Net Core基于ABP架構(gòu)配置To Json序列化

    ASP.Net Core基于ABP架構(gòu)配置To Json序列化

    這篇文章介紹了ASP.Net Core基于ABP架構(gòu)配置To Json序列化的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • VsCode之使用WebView通信詳解

    VsCode之使用WebView通信詳解

    這篇文章主要介紹了VsCode之使用WebView通信詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-05-05
  • 在ASP.NET?MVC下限制同一個(gè)IP地址單位時(shí)間間隔內(nèi)的請(qǐng)求次數(shù)的解決方法

    在ASP.NET?MVC下限制同一個(gè)IP地址單位時(shí)間間隔內(nèi)的請(qǐng)求次數(shù)的解決方法

    有時(shí)候,當(dāng)用戶請(qǐng)求一個(gè)Controller下的Action,我們希望,在單位時(shí)間間隔內(nèi),比如每秒,每分鐘,每小時(shí),每天,每星期,限制同一個(gè)IP地址對(duì)某個(gè)Action的請(qǐng)求次數(shù),如何做呢?這篇文章主要介紹了在ASP.NET?MVC下限制同一個(gè)IP地址單位時(shí)間間隔內(nèi)的請(qǐng)求次數(shù),需要的朋友可以參考下
    2024-01-01
  • 解析ABP框架中的事務(wù)處理和工作單元

    解析ABP框架中的事務(wù)處理和工作單元

    ABP是"ASP.NET Boilerplate Project(ASP.NET樣板項(xiàng)目)"的簡(jiǎn)稱,是一個(gè)建立在.NET之上的Web開(kāi)發(fā)框架,下面我們來(lái)解析ABP框架中的事務(wù)處理和工作單元
    2016-06-06
  • iis訪問(wèn)出現(xiàn)各種問(wèn)題(Vs訪問(wèn)正常)的部分處理方法詳細(xì)整理

    iis訪問(wèn)出現(xiàn)各種問(wèn)題(Vs訪問(wèn)正常)的部分處理方法詳細(xì)整理

    在vs中調(diào)試都可以正常,但是在iis訪問(wèn)就會(huì)出現(xiàn)各種問(wèn)題,很是疑惑索性把這些問(wèn)題整理一下,這樣更容易的可以處理方法說(shuō)明清楚,感興趣的朋友可以了解下
    2013-01-01
  • ASP.Net Core3.0中使用JWT認(rèn)證的實(shí)現(xiàn)

    ASP.Net Core3.0中使用JWT認(rèn)證的實(shí)現(xiàn)

    這篇文章主要介紹了ASP.Net Core3.0中使用JWT認(rèn)證的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • VS Code 1.26 發(fā)布 有你想要的新特性?

    VS Code 1.26 發(fā)布 有你想要的新特性?

    VS Code 1.26 發(fā)布,有你想要的新特性嗎?這篇文章主要為大家詳細(xì)介紹了VS Code 1.26一些主要的更新亮點(diǎn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • ASP.NET技巧:教你制做Web實(shí)時(shí)進(jìn)度條

    ASP.NET技巧:教你制做Web實(shí)時(shí)進(jìn)度條

    ASP.NET技巧:教你制做Web實(shí)時(shí)進(jìn)度條...
    2006-09-09
  • ASP.NET Core Middleware的實(shí)現(xiàn)方法詳解

    ASP.NET Core Middleware的實(shí)現(xiàn)方法詳解

    中間件是組裝到應(yīng)用程序管道中以處理請(qǐng)求和響應(yīng)的軟件。下面這篇文章主要給大家介紹了關(guān)于ASP.NET Core Middleware實(shí)現(xiàn)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2019-01-01
  • .net msmq消息隊(duì)列實(shí)例詳解

    .net msmq消息隊(duì)列實(shí)例詳解

    這篇文章主要為大家詳細(xì)介紹了.net msmq消息隊(duì)列的實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04

最新評(píng)論

长汀县| 偃师市| 陵水| 清丰县| 田东县| 勃利县| 长海县| 剑河县| 来凤县| 南华县| 陕西省| 壤塘县| 遂昌县| 浮梁县| 来安县| 孝昌县| 汨罗市| 长沙县| 阳春市| 东兴市| 白银市| 双桥区| 茂名市| 抚州市| 九江县| 高邑县| 札达县| 久治县| 商南县| 上杭县| 贵南县| 杂多县| 池州市| 甘泉县| 昌乐县| 陇西县| 丰都县| 即墨市| 陕西省| 伊春市| 和平县|