成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

關于VS2003編譯出現的幾種常見難點

開發 后端
雖然這種模型具有許多優點,但它也有一些缺點。ASP.NET 2.0 提供基本模型的幾種替代模型,并根據您的特定需要提供更為廣泛的編譯選項。

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

ASP.NET 1.x中的編譯

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

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

這整個過程中,開發人員擁有的唯一控制權是決定是否批編譯 ASPX 頁。在 ASP.NET 1.x 中,可以通過修改 標記在 web.config 文件中配置批編譯。

ASP.NET 2.0 中的編譯

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

普通 (ASP.NET 1.x) — 在一個普通的 ASP.NET Web 應用程序中,代碼隱藏文件被編譯到一個程序集并存儲在 /bin 目錄中。根據要求編譯 Web 頁 (ASPX)。該模型對大多數 Web 站點都運行得不錯。但是,編譯過程使得第一次請求 ASP.NET 頁時的速度比隨后的請求速度緩慢。ASP.NET 2.0 繼續支持這種編譯模型。

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

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

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

完整的運行時編譯 — 在部署預編譯的另一個極端,ASP.NET 2.0 提供一種在運行時編譯整個應用程序的新機制。也就是說,可以將未編譯的代碼隱藏文件和其他相關的代碼放在 \app_code 目錄中,并讓 ASP.NET 2.0 創建并維護對程序集的引用,這些引用將在運行時根據這些文件生成。這種選項以在服務器上存儲未編譯代碼為代價,在更改 Web 站點內容方面提供了最大的靈活性。 #t#

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

VS2003編譯批編譯

在 ASP.NET 2.0 中,可以利用單個 URL 請求來批編譯任何應用程序。如同 ASP.NET 1.x 一樣,批編譯消除了第一次頁面請求的延時,但造成了更長的啟動周期。另外,批編譯還要求在部署前編譯代碼隱藏文件。

Web.config 批編譯設置在 ASP.NET 2.0 中仍起作用。批編譯的優點是,第一個用戶可以立即使用頁面,而且在批編譯期間可以檢測到 ASPX 頁中的任何錯誤。但是,批編譯的確增加了應用程序啟動的延時,并且必須要內置在 Web.config 文件中。應當注意,如果某個文件出現了問題,則該批將不會接收它。

部署預VS2003編譯

部署預編譯允許創建一個或多個程序集,這些程序集是 Web 站點的可執行版本。所獲得的程序集包含 Web 站點的已編譯代碼。HTML 頁面、資源、配置文件和 ASPX 頁面被單獨復制。

部署預編譯要求使用一個稱為 ASPnet_compiler.exe 的命令行實用程序。該實用程序創建一個目標部署目錄,該目錄包含一個含有程序集的 /bin 目錄和各種 ASPX 頁的 stub 文件。該實用程序還用來在原地進行預編譯,類似于調用"魔術頁"的行為。stub 文件共享 ASPX 頁的名稱,但是包含調用已編譯程序集的簡單代碼。換句話說,ASPX 頁只是空殼而不是填滿的功能頁。

通過為部署預編譯 Web 站點,您可以獲得增強的安全性,因為只有進行反編譯程序集才能訪問您的代碼。為了增強保護,可以弄亂所得到的程序集,使您的 Web 應用程序更加安全。部署預編譯的主要缺點是,在部署前必須執行這些步驟,并且在部署后不能更改 Web 站點。如果想進行更改,就必須重新編譯該 Web 站點并重新部署它。

對于大多數主要的 Web 應用程序,部署預編譯選項將是部署的首選機制,因為它減少了在 Web 服務器上部署的原始代碼數量,并提供了最佳的安全性。這個增加的進程可以內置于通常的開發/測試/部署周期中,而工作效率并不會有多大損失。

責任編輯:chenqingxiang 來源: goldhawk1010的專欄
相關推薦

2009-11-25 11:25:31

VS2003軟件

2009-11-27 08:59:29

VS2003配置文件

2009-11-26 17:02:29

VS2003配置

2009-11-30 10:34:28

VS2003編譯

2009-12-01 10:54:48

VS2003 英文版

2009-12-16 10:15:58

VS2003編譯

2009-11-27 11:00:36

運行VS2003

2009-11-26 09:42:38

VS2003插件

2009-11-27 09:24:29

VS2003命令

2009-11-30 09:10:40

VS2003斷點無效

2009-11-26 13:40:53

2009-12-01 09:30:45

2009-11-26 15:50:06

VS2003編譯器

2009-11-25 15:39:24

VS2003 Incl

2009-12-18 10:10:49

VS 2003程序

2009-12-09 13:41:04

VS 2003 報錯

2009-11-27 13:46:19

VS2003無法調試

2009-11-30 13:51:28

VS2003 Runt

2009-11-26 16:46:08

VS2003編譯

2009-11-30 09:27:38

VS2003源代碼
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩精品久久久久久 | 久久精品二区亚洲w码 | 在线观看www高清视频 | 国产美女精品视频免费观看 | 99精品久久久久久中文字幕 | 99re视频| 欧美日韩久久久久 | 欧美 日本 国产 | 午夜视频一区二区 | 欧美精品乱码久久久久久按摩 | 亚洲一区中文字幕 | 狠狠入ady亚洲精品经典电影 | 天天干狠狠操 | 国产网站久久 | 免费在线观看一区二区三区 | 日本久久精品视频 | 在线观看免费高清av | 亚洲欧洲中文日韩 | 91免费观看| 国产精品美女久久久久久久网站 | 国产免费av在线 | 99精品网 | 在线观看中文字幕一区二区 | 国产一区二区精华 | 特一级黄色毛片 | 国产精品一区二区三区在线 | 午夜视频一区二区三区 | 久久精品成人热国产成 | 久久久tv| 麻豆av在线免费观看 | 91久久婷婷 | 亚洲国产成人精品女人久久久 | www.久久艹| 久久精品国产免费 | 日韩影院在线 | 国产亚洲精品成人av久久ww | av在线电影网站 | 久久精品亚洲国产奇米99 | 成人婷婷 | 久久不射网 | 欧美成人精品激情在线观看 |