偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

關(guān)于VS2003編譯出現(xiàn)的幾種常見難點(diǎn)

開發(fā) 后端
雖然這種模型具有許多優(yōu)點(diǎn),但它也有一些缺點(diǎn)。ASP.NET 2.0 提供基本模型的幾種替代模型,并根據(jù)您的特定需要提供更為廣泛的編譯選項(xiàng)。

選擇最佳的VS2003編譯選項(xiàng)要由具體的情況和需要決定,但VS2003編譯模型要有靈活性。即使選擇使用 \app_code 目錄來(lái)存儲(chǔ)代碼隱藏文件,您仍可以使用完整的編譯方法來(lái)部署應(yīng)用程序。

ASP.NET 1.x中的編譯

ASP.NET1.x 中的主要編譯模型會(huì)導(dǎo)致一個(gè)應(yīng)用程序程序集(包含所有的已編譯代碼隱藏文件和其他的源代碼)和一個(gè)為每個(gè)被請(qǐng)求的 ASPX 頁(yè)而創(chuàng)建的臨時(shí)程序集。在有些情況下,編譯器優(yōu)化(例如批處理)會(huì)引起將臨時(shí) ASPX 頁(yè)編譯到同一個(gè)程序集中。在任一種情況下,每個(gè) ASPX 頁(yè)都編譯到一個(gè)臨時(shí)程序集中,這樣它可以加載到 ASP.NET 運(yùn)行庫(kù)。

雖然這種模型有優(yōu)點(diǎn),但它也有兩個(gè)主要缺點(diǎn)。首先,ASPX 頁(yè)必須要以人們可以閱讀的形式部署到 Web 站點(diǎn)。如果開發(fā)人員使用代碼內(nèi)聯(lián) 模型,這意味著,一些(或所有)的業(yè)務(wù)邏輯也可以部署在生產(chǎn)服務(wù)器上。雖然沒(méi)有將 IIS 和 ASP.NET 配置為公開原始的 ASPX 頁(yè),但聰明的攻擊者仍可以通過(guò)任何攻擊(該攻擊打開到 Web 服務(wù)器的通道)來(lái)訪問(wèn)這些文件。其次,第一次有人請(qǐng)求某 Web 頁(yè)時(shí),響應(yīng)速度將比正常速度慢一些,原因在于 ASP.NET 運(yùn)行庫(kù)必須編譯 ASPX 頁(yè)。

這整個(gè)過(guò)程中,開發(fā)人員擁有的唯一控制權(quán)是決定是否批編譯 ASPX 頁(yè)。在 ASP.NET 1.x 中,可以通過(guò)修改 標(biāo)記在 web.config 文件中配置批編譯。

ASP.NET 2.0 中的編譯

ASP.NET 2.0 為 Web 應(yīng)用程序提供三種不同的VS2003編譯模型:

普通 (ASP.NET 1.x) — 在一個(gè)普通的 ASP.NET Web 應(yīng)用程序中,代碼隱藏文件被編譯到一個(gè)程序集并存儲(chǔ)在 /bin 目錄中。根據(jù)要求編譯 Web 頁(yè) (ASPX)。該模型對(duì)大多數(shù) Web 站點(diǎn)都運(yùn)行得不錯(cuò)。但是,編譯過(guò)程使得第一次請(qǐng)求 ASP.NET 頁(yè)時(shí)的速度比隨后的請(qǐng)求速度緩慢。ASP.NET 2.0 繼續(xù)支持這種編譯模型。

部署預(yù)編譯 — ASP.NET 2.0 的一種新功能,允許在部署前對(duì)項(xiàng)目進(jìn)行完整編譯。在完整編譯中,所有的代碼隱藏文件、ASPX 頁(yè)面、HTML、圖形資源以及其他的后端代碼都被編譯到一個(gè)或多個(gè)可執(zhí)行程序集中,這取決于應(yīng)用程序的大小和編譯設(shè)置。

這些程序集包含所有的已編譯 Web 站點(diǎn)代碼,而資源文件和配置文件被復(fù)制,沒(méi)有做修改。這種編譯方法以犧牲修改部署后 Web 站點(diǎn)的能力為代價(jià),提供了最好的性能和安全性。如果您使用高可見或高安全的 Web 站點(diǎn),這種選項(xiàng)是最終部署的最好選擇。但是,如果您正在構(gòu)建一個(gè)運(yùn)行局部 Intranet 的小站點(diǎn),并且更改站點(diǎn)非常頻繁,那么完整預(yù)編譯可能有點(diǎn)過(guò)分。

ASP.NET 2.0 編譯模型也允許預(yù)編譯應(yīng)用程序的所有代碼隱藏文件并且仍可以更新代碼。可以將代碼隱藏文件和原始的 .ASPX 文件(都是局部類)編譯到一個(gè)預(yù)編譯類中(頁(yè)面的基類)。如果選擇在運(yùn)行時(shí)編輯 .ASPX 文件,只需重新編譯頁(yè)面即可。

完整的運(yùn)行時(shí)編譯 — 在部署預(yù)編譯的另一個(gè)極端,ASP.NET 2.0 提供一種在運(yùn)行時(shí)編譯整個(gè)應(yīng)用程序的新機(jī)制。也就是說(shuō),可以將未編譯的代碼隱藏文件和其他相關(guān)的代碼放在 \app_code 目錄中,并讓 ASP.NET 2.0 創(chuàng)建并維護(hù)對(duì)程序集的引用,這些引用將在運(yùn)行時(shí)根據(jù)這些文件生成。這種選項(xiàng)以在服務(wù)器上存儲(chǔ)未編譯代碼為代價(jià),在更改 Web 站點(diǎn)內(nèi)容方面提供了最大的靈活性。 #t#

選擇最佳的編譯選項(xiàng)要由具體的情況和需要決定,但編譯模型要有靈活性。即使選擇使用 \app_code 目錄來(lái)存儲(chǔ)代碼隱藏文件,您仍可以使用完整的編譯方法來(lái)部署應(yīng)用程序。

VS2003編譯批編譯

在 ASP.NET 2.0 中,可以利用單個(gè) URL 請(qǐng)求來(lái)批編譯任何應(yīng)用程序。如同 ASP.NET 1.x 一樣,批編譯消除了第一次頁(yè)面請(qǐng)求的延時(shí),但造成了更長(zhǎng)的啟動(dòng)周期。另外,批編譯還要求在部署前編譯代碼隱藏文件。

Web.config 批編譯設(shè)置在 ASP.NET 2.0 中仍起作用。批編譯的優(yōu)點(diǎn)是,第一個(gè)用戶可以立即使用頁(yè)面,而且在批編譯期間可以檢測(cè)到 ASPX 頁(yè)中的任何錯(cuò)誤。但是,批編譯的確增加了應(yīng)用程序啟動(dòng)的延時(shí),并且必須要內(nèi)置在 Web.config 文件中。應(yīng)當(dāng)注意,如果某個(gè)文件出現(xiàn)了問(wèn)題,則該批將不會(huì)接收它。

部署預(yù)VS2003編譯

部署預(yù)編譯允許創(chuàng)建一個(gè)或多個(gè)程序集,這些程序集是 Web 站點(diǎn)的可執(zhí)行版本。所獲得的程序集包含 Web 站點(diǎn)的已編譯代碼。HTML 頁(yè)面、資源、配置文件和 ASPX 頁(yè)面被單獨(dú)復(fù)制。

部署預(yù)編譯要求使用一個(gè)稱為 ASPnet_compiler.exe 的命令行實(shí)用程序。該實(shí)用程序創(chuàng)建一個(gè)目標(biāo)部署目錄,該目錄包含一個(gè)含有程序集的 /bin 目錄和各種 ASPX 頁(yè)的 stub 文件。該實(shí)用程序還用來(lái)在原地進(jìn)行預(yù)編譯,類似于調(diào)用"魔術(shù)頁(yè)"的行為。stub 文件共享 ASPX 頁(yè)的名稱,但是包含調(diào)用已編譯程序集的簡(jiǎn)單代碼。換句話說(shuō),ASPX 頁(yè)只是空殼而不是填滿的功能頁(yè)。

通過(guò)為部署預(yù)編譯 Web 站點(diǎn),您可以獲得增強(qiáng)的安全性,因?yàn)橹挥羞M(jìn)行反編譯程序集才能訪問(wèn)您的代碼。為了增強(qiáng)保護(hù),可以弄亂所得到的程序集,使您的 Web 應(yīng)用程序更加安全。部署預(yù)編譯的主要缺點(diǎn)是,在部署前必須執(zhí)行這些步驟,并且在部署后不能更改 Web 站點(diǎn)。如果想進(jìn)行更改,就必須重新編譯該 Web 站點(diǎn)并重新部署它。

對(duì)于大多數(shù)主要的 Web 應(yīng)用程序,部署預(yù)編譯選項(xiàng)將是部署的首選機(jī)制,因?yàn)樗鼫p少了在 Web 服務(wù)器上部署的原始代碼數(shù)量,并提供了最佳的安全性。這個(gè)增加的進(jìn)程可以內(nèi)置于通常的開發(fā)/測(cè)試/部署周期中,而工作效率并不會(huì)有多大損失。

責(zé)任編輯:chenqingxiang 來(lái)源: goldhawk1010的專欄
相關(guān)推薦

2009-11-25 11:25:31

VS2003軟件

2009-11-27 08:59:29

VS2003配置文件

2009-12-01 10:54:48

VS2003 英文版

2009-11-26 17:02:29

VS2003配置

2009-11-30 10:34:28

VS2003編譯

2009-12-16 10:15:58

VS2003編譯

2009-11-27 11:00:36

運(yùn)行VS2003

2009-11-27 09:24:29

VS2003命令

2009-11-26 09:42:38

VS2003插件

2009-11-30 09:10:40

VS2003斷點(diǎn)無(wú)效

2009-11-26 13:40:53

2009-12-01 09:30:45

2009-11-25 15:39:24

VS2003 Incl

2009-11-26 15:50:06

VS2003編譯器

2009-11-27 13:46:19

VS2003無(wú)法調(diào)試

2009-12-18 10:10:49

VS 2003程序

2009-12-09 13:41:04

VS 2003 報(bào)錯(cuò)

2009-11-30 13:51:28

VS2003 Runt

2009-11-30 09:27:38

VS2003源代碼

2009-11-30 13:51:28

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)