.NET 部署_ASP.NET部署的八大關鍵實踐

原文地址:http://www.devx.com/dotnet/Article/38462/0/page/1

 

本文提出一些部署ASP.NET程序的最佳實踐,你可以跟着部署你的應用程序。這些實踐可以幫助你避免部署期間和部署之後的一些問題。

 

1. 您程序集的版本

確保制定一個版本控制策略。你可以在編譯時使用版本戳AssemblyVersion屬性,例如:

  [assembly: AssemblyVersion("1.0.12.34")]

通常,最好在生成期間,對所有程序集應用相同的版本號。

 

2. 給程序集強命名

程序集是.NET中安全、部署、版本控制和代碼重用的最小單元。每個程序集包含:

1)      AssemblyIdentity information (name, version, etc.)

2)      Manifestand metadata information

3)      MSILcode

4)      Typeand security information

5)      Resources

一個具有強名稱的程序集可以被其程序集的版本、文化信息和數字簽名的結合來唯一標識。確定其集版本,文化信息(culture information)和數字簽名結合(digital signature

您可以通過.NET框架提供的強命名實用工具(Sn.exe)爲您的程序集創建一個強命名。該實用工具要求您提供一個強命名密鑰文件作爲參數。生成的文件稱爲“強名稱”文件。您可以使用命令行Sn.exe工具來創建一個強命名密鑰文件,如下:

   sn--k MyCompany.snk

當您在 VS 中創建一個項目時,您會看到一個名爲AssemblyInfo.cs默認文件,用它來指定相關屬性。下面是你在AssemblyInfo.cs文件指定的強命名信息。

  [assembly: AssemblyCulture("")]

  [assembly: AssemblyVersion("1.0.0.0")]

  [assembly: AssemblyKeyFile("MyCompany.snk")]


3. 混亂您的程序集(Obfuscate

在發佈前,混亂您的程序集是一個很好的實踐。混亂使程序集更難反編譯,並阻止了方向工程的嘗試,這樣,保護您的源代碼。另外,混亂減少了你的程序集的大小,從而提高了應用程序的性能。

 

4. 部署共享程序集到 GAC

你應該把多個應用程序都使用的程序集部署到全局程序集緩存區(Global Assembly CacheGAC)中,這使得程序集被所有使用該程序集的應用程序共享。與不在GAC中的程序集相比,把程序集部署到GAC中,可以改善程序集的裝載性能。強命名的程序集從GAC裝載得更快,因爲他們在安裝時驗證,而不是在運行時——.NET框架對於GAC裝載的程序集在運行時跳過驗證。運行時總是檢查強命名程序集,以驗證其完整性。.NET的拒絕加載不受信任的或可能已被篡改的程序集。請注意,您必須要爲安裝到GAC的程序集提供一個強命名。

可以使用 Gacutil 工具將一個程序集放入GAC中。下面的命令把 MyProject.dll 放入GAC,這樣,使該程序集全局可訪問。

  GacUtil /i MyProject.dll

GAC卸載程序集,可以使用:

  GacUtil /u MyProject.dll

請注意,你甚至可以使強命名程序集全局可訪問,即便它不在GAC中。對於這一點,您需要使用XCOPY命令來部署程序集。

 

568. 用適當的部署策略部署、預編譯您的站點和Click Once

作者在568分別介紹 Copy Web Site ToolXCopyClick-Once Deployment,以及預編譯站點。本文寫於2008年,部署站點時,我更喜歡用Web Deployment 工具,因此,此處內容略過。

參考:http://blog.csdn.net/liuning800203/category/737128.aspx

 

7. 減小文件大小

通常,從網頁、腳本和CSS中清除額外的空格和其他不必要的字符,減少響應文件的大小是一個很好的做法。您還使用 IIS compression來壓縮響應以便降低網絡帶寬,改進性能。雖然使用IIS compression(壓縮需要額外的處理)存在很小的性能損失,但它仍然是一個很好的做法,因爲,性能損失與你從中得到的巨大利益相比可以忽略不計。壓縮可以減少近一半的網絡帶寬!這篇文章提供了有關文件大小減少和IISHTTP壓縮的更多信息。

 

最後要點

在你部署應用程序之前,確保web.config 文件的編譯屬性設置爲false。當設置爲true 時,您的應用程序會消耗更多的內存和處理時間,並且,從Web 服務器下載的腳本和圖片不會放在本地緩存。

在把應用程序部署到產品服務器之前,以Release模式構建您的程序集。

通過設置Web 服務擴展爲“enabled”,確保IIS 能夠處理動態內容。

確保加密您應用程序使用的所有配置數據,例如數據庫鏈接等等。

請記住,使用IIShttp compression 來壓縮響應文件大小,來提高整個應用程序的性能。

最後,準備一份清單,列出您所選擇的部署步驟。你就可以交叉檢查,以確保沒有跳過任何步驟。

 

將ASP.NET應用程序部署到產品服務器有很多策略。通過體會這些選擇,選擇最好的部署方式,準備檢查列表,並用它來驗證是否是最好的實踐,你會發現產品部署可以很順利地進行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章