劉小強
(三門峽職業(yè)技術(shù)學院,河南 三門峽 472000)
關(guān)于構(gòu)建高性能ASP.NET網(wǎng)站的優(yōu)化措施研究
劉小強
(三門峽職業(yè)技術(shù)學院,河南 三門峽 472000)
從ASP.NET網(wǎng)站的項目編譯方式、站點發(fā)布方式、回傳方式、聲明站點的默認頁面以及永久跳轉(zhuǎn)等五個方面進行了研究和探討,并針對這五個方面提出了提高ASP.NET網(wǎng)站性能的解決方案,從而簡便快捷的實現(xiàn)了ASP.NET網(wǎng)站的高性能優(yōu)化。
ASP.NET;性能;優(yōu)化
隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,用戶對網(wǎng)站的性能要求越來越高。如何更好地利用所占有的資源來提高應用程序本身的性能,已成為開發(fā)人員考慮的一個關(guān)鍵問題。ASP.NET網(wǎng)站如果沒有良好的性能即便功能全面也無法滿足和發(fā)揮其應有的作用和價值。無論ASP.NET網(wǎng)站的頁面多美精美,功能多么強大,服務多么優(yōu)良,如果網(wǎng)站的性能無法讓用戶接受,所有的工作都沒有意義[1],因此ASP.NET網(wǎng)站的性能是至關(guān)重要的。
雖然硬件價格越來越低,升級硬件成為提高系統(tǒng)性能最方便、直接的途徑,但是在當前這種系統(tǒng)越來越龐大,客戶需要也不斷提升的情況下,僅僅依靠頻繁升級硬件是無法獲得滿意的效果的[3]。所以在現(xiàn)有的網(wǎng)絡資源的環(huán)境下,通過對ASP.NET網(wǎng)站進行優(yōu)化來提高網(wǎng)絡的性能成為了解決問題的又一途徑。
ASP.NET網(wǎng)站的性能高低是衡量網(wǎng)站價值的重要指標,而網(wǎng)站的性能優(yōu)化工作是多方面的又是長期的。本文從以下五個方面進行了研究和探討,并針對這五個方面提出了解決方案,從而簡便、快捷的實現(xiàn)了ASP.NET網(wǎng)站的高性能優(yōu)化。
1.1 優(yōu)化項目編譯方式
如果項目是用Project的方式建立的,ASP.NET站點包含在一個Solution解決方案中,那么在發(fā)布之前,編譯項目的時候,采用release方式,這種方式會減少CPU的使用率[2]。因為采用debug的方式發(fā)布,編譯器會編譯后的代碼中加入很多的信息,如調(diào)試信息等。具體優(yōu)化操作步驟如下:
(1)在VS中,選擇“Build|Configuration Manager”,如圖1所示:
(2)在“Active Solution Configuration”下拉框選擇“Release”,然后點擊關(guān)閉按鈕關(guān)閉對話框。那么Solution就以Release方式編譯。使得Solution編譯為Release的方法很多,例如在Solution上面右擊“屬性”,然后去設置也是可以的。
圖1 Configuration Manager設置
(3)解決方案Solution設置為Release方式后,ASP.NET站點程序的config文件仍為deubg方式,那么在發(fā)布站點的時候,需要手動的去修改為release。如果Solution是以debug方式編譯,即使web.config設置了release,最后發(fā)布的站點的代碼還是debug方式的。
1.2 優(yōu)化站點發(fā)布方式
根據(jù)上文所述優(yōu)化項目編譯方式后,仍需要進一步設置優(yōu)化ASP.NET站點程序的config文件,發(fā)布站點的時候,需要手動的去修改為release。因此站點發(fā)布方式也需要進一步優(yōu)化,具體發(fā)布優(yōu)化的步驟如下:
(1)修改web.config配置;
(2)在站點上面右鍵選擇”Publish”,如圖2所示:
圖2 Publish設置
1.3減少不必要的回傳
從服務端到客戶端的回傳每次都是需要花費一定的時間,而且加長了用戶等待的時間。所以應該盡可能減少不必要的回傳。解決辦法如下:
如果需要在服務端把用戶定向到另外的一個頁面,盡量使用Server.Transfer,而不是使用Response.Redirect。因為當使用Response.Redirect的時候,服務端會向客戶端的瀏覽器發(fā)送一個響應:告訴瀏覽器去加載轉(zhuǎn)向的那個頁面。然后瀏覽器再次發(fā)送請求到服務端去請求另外的那個頁面。當使用Server. Transfer的時候,服務端就立刻執(zhí)行跳轉(zhuǎn)[3]。這樣做的一個不好的地方可能就是:此時請求的是A.aspx,其實服務端已經(jīng)跳轉(zhuǎn)到了B.aspx頁面,但是瀏覽器上面的Url還是顯示的A.aspx。
當使用Server.Transfer需要注意:確定每次訪問A頁面都需要跳轉(zhuǎn)到B頁面的時候,就是用Server.Transfer。例如,當用戶在沒有登錄的時候想對正在閱讀的一篇文章評論,那么此時,頁面就會跳轉(zhuǎn)到Login的登陸頁面,登陸之后,頁面就跳轉(zhuǎn)到之前看文章的那個頁面,然后寫評論。此時的這個跳轉(zhuǎn)就不適合用Server.Transfer,而采用Response.Redirect。如果不管用戶在哪里,只要用戶登陸,那么總是跳到一個固定的頁面,那么就可以使用Server.Transfer。
矩陣Rbe反映了足端坐標系到機身坐標系的旋轉(zhuǎn)關(guān)系,三維矢量Pbe反映了足端在機身坐標系中與質(zhì)心的位置關(guān)系,兩者共同體現(xiàn)了機器人足端的位姿。
1.4 聲明站點的默認頁面
當用戶請求一個站點的時候,如http://domain/folder,IIS會自動進行一些重定向到http://domain/folder/。同時,http.sys也不會把沒有聲明默認頁面的站點的默認首頁加入到內(nèi)核的緩存中,例如,如果在程序中,我們設置站點的默認頁面時Default.aspx,但是在部署到IIS的時候,沒有配置Default.aspx就是站點的默認頁面,那么這個頁面的內(nèi)容不會被http.sys緩存到內(nèi)核中[4]。所以為了避免IIS重定向和允許http.sys緩存頁面,我們在IIS中要配置站點的默認頁面。
1.5 永久跳轉(zhuǎn)相關(guān)話題
如果站點的某個頁面過期了或者不再用了,那么就可以采用301永久跳轉(zhuǎn)。當服務端向客戶端發(fā)出301響應的時候,瀏覽器和代理都會去更新他們的緩存(如果之前的舊頁面采用了緩存),而且搜索引擎也會采用新的頁面[5]。要讓服務端向客戶端發(fā)送301響應,需要進行IIS配置,其中IIS目前比較流行的版本有IIS5.1、IIS6、IIS7等,現(xiàn)對IIS6和IIS7的配置進行說明如下:
(1) IIS 6配置
1)在IIS中站點中,選中你想跳轉(zhuǎn)的文件或者目錄。
2)選中“A redirection to a URL”。
3)然后輸入你想跳轉(zhuǎn)到的頁面。
4)然后選中“The exact url entered above”和“A permanent redirect for this resource”。
(2) IIS 7配置
在Server 2008上面進行如下配置:
1)打開”開始”->”管理工具”->”服務器管理”,如圖3所示:
2)在IIS上面添加”角色服務”,如圖4所示:
3)在“常見Http功能”下面選中“Http重定向”,如圖5所示:
4)然后安裝。
5)在我們的站點的web.config配置如下:
圖3 服務器管理
圖4 添加角色服務
圖5 選擇角色服務
在開發(fā)ASP.NET網(wǎng)站的過程中,其功能、性能以及安全性都是需要考慮的問題。本文給出了在系統(tǒng)功能已經(jīng)實現(xiàn)的基礎上對以上其性能進行研究和探討,開發(fā)人員在開發(fā)ASP.NET網(wǎng)站時要合理地利用ASP. NET的新特性,并通過提高應用程序本身的性能,可以推遲硬件的升級,降低網(wǎng)站的開發(fā)成本。從而簡便快捷的實現(xiàn)了ASP.NET網(wǎng)站的高性能優(yōu)化。
[1]王茹.基于ASP.NET應用程序的性能優(yōu)化[J].黑龍江科技信息,2010,(10).
[2]劉小強.二手轉(zhuǎn)讓及房產(chǎn)租售垂直搜索引擎的設計與實現(xiàn)[J].三門峽職業(yè)技術(shù)學院學報,2010,(3).
[3]劉小強.軟件技術(shù)專業(yè)課程體系構(gòu)建的研究與實踐[J].濟源職業(yè)技術(shù)學院學報,2010,(3).
[4]劉小強.基于QoS服務的網(wǎng)格計算分析與研究[J].科技信息, 2010,(21).
[5]楊智澤.簡論提高ASP.Net應用程序性能的六種策略[J].微電子學與計算機,2006,(7).
(責任編輯:方少卿)
TP311
A
1671-752X(2012)02-0065-02
2012-02-21
劉小強(1982-),男,陜西咸陽人,三門峽職業(yè)技術(shù)學院信息工程系講師,碩士。