不選中這一項,編譯出來的aspx中沒有界面信息,只有一句靜態(tài)文本,就是不允許發(fā)布后修改頁面
如果是想此編譯方式具有最大的安全性,應(yīng)去掉"允許更新此預(yù)編譯站點(Allow this precompiled site to be updateable". 這樣代碼文件(code,即cs文件)和內(nèi)容文件(content file,即aspx)都會預(yù)編譯
2,使用固定命名和單頁程序集
3.對預(yù)編輯程序集啟用強命名
在多數(shù)情況下,完全預(yù)編譯方式正是所需要的方式,但是有時候因為內(nèi)容文件變化不大,你可能希望在網(wǎng)站發(fā)布后,不用每次把所有的代碼與內(nèi)容文件全部編譯,也許內(nèi)容文件就不用再次編譯,只需編譯代碼文件即可,這種情況下,就選中"允許更新此預(yù)編譯站點",這種方式稱為"只預(yù)編譯代碼文件(pre- compilation of code only)"方式.此方式與"完全預(yù)編譯方式"相比較,只有一點區(qū)別,即內(nèi)容文件仍是原始版本,而不是存根 (stub)版本,其它效果相同.在內(nèi)容文件發(fā)布后也可以對其進行編輯,其變動在以后的請求到來時起作用,對于訪問此站的用戶來說是透明的.
附:
強命名(strong names) 如果一個assembly需要共享,則其必須使用強命名.一個強命名唯一標(biāo)識了一個assembly.有四部分組成: 1,assembly名稱(不包含文件擴展名);2,版本; 3,culture;
延遲簽名:顯然,每個公司的私鑰都必須非常安全地保存,然后這就帶來一個進退兩難的問題:在開發(fā)和測試一個共享的assembly時,需要使用強命名方式, 而創(chuàng)建強命名時肯定需要訪問私鑰的,但是又不能把公司的私鑰提供給參與項目開發(fā)的且需要創(chuàng)建強命名的所有開發(fā)人員,怎么辦? 這時就要用"延遲簽名"技術(shù).此種方式下,在創(chuàng)建強命名assembly時,只需要提供公鑰,因為公鑰提供給所有的人是允許的,也是安全的,利用公鑰,開發(fā)人員可以進行程序的開發(fā)和測試工作,直到準備進行最終的build時,才同時使用公鑰和私鑰. 延遲簽名需要從key文件中把公鑰解出來,形成獨立的公鑰文件,通過使用命令: sn -p KeyPair.snk PublicKey.snk即可.這樣,publicKey.snk只包含公鑰,就可以用了.
但每一次發(fā)布網(wǎng)站,網(wǎng)站dll文件都會生成隨機的名字,頁面繼承的類都會繼承隨機的名字
這就造成了,哪怕是一點很小的修改,在發(fā)布網(wǎng)站之后,也必須重新上傳所有的頁面
如果采用“固定命名和單頁程序集”的方式,又會生成太多dll文件,看著就心煩
[url]http://download.microsoft.com/download/9/4/9/9496adc4-574e-4043-bb70-bc841e27f13c/WebDeploymentSetup.msi[/url]
右鍵在當(dāng)前解決方案里生成一個:Add Web Deployment Project 項目, 在該項目里就可以設(shè)置生成DLL的命名方式了,以后生成該項目就可以生成相應(yīng)的網(wǎng)站!原有的發(fā)布網(wǎng)站的功能可以退休了!
參考微軟原文
下載地址
1、下載后安裝、右鍵選擇vs2005中的項目、會出現(xiàn)一個選項"Add Web Deployment Project"([url]http://www.cnblogs.com/chy710[/url])
2、選擇添加一個WebDeployment Project(輸入程序集名稱和發(fā)布地址)
3、此時解決方案中會多出一個項目([url]http://www.cnblogs.com/chy710[/url])
4、右鍵選擇該項目設(shè)置相應(yīng)屬性
5、右鍵選擇該項目選擇“生成”、此時會發(fā)布網(wǎng)站到指定的目錄、生成DLL文件同vs2003一樣、更新時只需上傳DLL文件
([url]http://www.cnblogs.com/chy710[/url])