日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

asp.net發(fā)布網(wǎng)站時(shí)三個(gè)選項(xiàng)的問題

 悟靜 2011-02-14
發(fā)布網(wǎng)站的時(shí)候有三個(gè)選項(xiàng),很多人都不知道到底是怎么用的,簡單說說:  
   
  第一個(gè)選項(xiàng)指定發(fā)布后是不是可以修改aspx文件,如果勾選,則發(fā)布后的網(wǎng)站行為基本與ASP.NET   1.1一致,只要沒有增刪修改控件,可以直接在服務(wù)器上修改aspx文件不用重新發(fā)布網(wǎng)站。  
   
  第二個(gè)選項(xiàng)指定是不是將每個(gè)aspx文件都編譯成一個(gè)DLL文件,這樣,就可以在修改了哪個(gè)aspx網(wǎng)頁(包括aspx和cs文件),只需要更新一個(gè)DLL文件就行了,不用整站全部更新。
 
1.允許更新此預(yù)編輯站點(diǎn)
選中這一項(xiàng)后,編譯出來的包括aspx文件和dll,與2003下一樣。
不選中這一項(xiàng),編譯出來的aspx中沒有界面信息,只有一句靜態(tài)文本,就是不允許發(fā)布后修改頁面
為了不讓訂閱網(wǎng)站的用戶在第一次打開頁面時(shí)感受到明顯的延遲,可以使用"完全預(yù)編譯(full pre-compilation)"方式.
如果是想此編譯方式具有最大的安全性,應(yīng)去掉"允許更新此預(yù)編譯站點(diǎn)(Allow this precompiled site to be updateable". 這樣代碼文件(code,即cs文件)和內(nèi)容文件(content file,即aspx)都會(huì)預(yù)編譯

2,使用固定命名和單頁程序集
會(huì)案照畫面的類名編譯出很多名字固定的dll。

3.對(duì)預(yù)編輯程序集啟用強(qiáng)命名
在多數(shù)情況下,完全預(yù)編譯方式正是所需要的方式,但是有時(shí)候因?yàn)閮?nèi)容文件變化不大,你可能希望在網(wǎng)站發(fā)布后,不用每次把所有的代碼與內(nèi)容文件全部編譯,也許內(nèi)容文件就不用再次編譯,只需編譯代碼文件即可,這種情況下,就選中"允許更新此預(yù)編譯站點(diǎn)",這種方式稱為"只預(yù)編譯代碼文件(pre- compilation of code only)"方式.此方式與"完全預(yù)編譯方式"相比較,只有一點(diǎn)區(qū)別,即內(nèi)容文件仍是原始版本,而不是存根 (stub)版本,其它效果相同.在內(nèi)容文件發(fā)布后也可以對(duì)其進(jìn)行編輯,其變動(dòng)在以后的請求到來時(shí)起作用,對(duì)于訪問此站的用戶來說是透明的.


附:
強(qiáng)命名(strong names) 如果一個(gè)assembly需要共享,則其必須使用強(qiáng)命名.一個(gè)強(qiáng)命名唯一標(biāo)識(shí)了一個(gè)assembly.有四部分組成: 1,assembly名稱(不包含文件擴(kuò)展名);2,版本; 3,culture;   4,密鑰對(duì)(即一個(gè)公鑰和一個(gè)私鑰),保存在key文件中,所以說 key文件就是同時(shí)包含了公鑰和私鑰的文件,在使用強(qiáng)命名時(shí)當(dāng)然是需要此key文件的.創(chuàng)建key文件用命令: sn -k KeyPair.snk

延遲簽名:顯然,每個(gè)公司的私鑰都必須非常安全地保存,然后這就帶來一個(gè)進(jìn)退兩難的問題:在開發(fā)和測試一個(gè)共享的assembly時(shí),需要使用強(qiáng)命名方式, 而創(chuàng)建強(qiáng)命名時(shí)肯定需要訪問私鑰的,但是又不能把公司的私鑰提供給參與項(xiàng)目開發(fā)的且需要?jiǎng)?chuàng)建強(qiáng)命名的所有開發(fā)人員,怎么辦? 這時(shí)就要用"延遲簽名"技術(shù).此種方式下,在創(chuàng)建強(qiáng)命名assembly時(shí),只需要提供公鑰,因?yàn)楣€提供給所有的人是允許的,也是安全的,利用公鑰,開發(fā)人員可以進(jìn)行程序的開發(fā)和測試工作,直到準(zhǔn)備進(jìn)行最終的build時(shí),才同時(shí)使用公鑰和私鑰. 延遲簽名需要從key文件中把公鑰解出來,形成獨(dú)立的公鑰文件,通過使用命令: sn -p KeyPair.snk PublicKey.snk即可.這樣,publicKey.snk只包含公鑰,就可以用了.
出現(xiàn)問題
visual studio2005將網(wǎng)站開發(fā)和網(wǎng)站發(fā)布的目錄分開,本身是個(gè)很好的設(shè)定
但每一次發(fā)布網(wǎng)站,網(wǎng)站dll文件都會(huì)生成隨機(jī)的名字,頁面繼承的類都會(huì)繼承隨機(jī)的名字
這就造成了,哪怕是一點(diǎn)很小的修改,在發(fā)布網(wǎng)站之后,也必須重新上傳所有的頁面
如果采用“固定命名和單頁程序集”的方式,又會(huì)生成太多dll文件,看著就心煩  
解決方法
安裝:   
[url]http://download.microsoft.com/download/9/4/9/9496adc4-574e-4043-bb70-bc841e27f13c/WebDeploymentSetup.msi[/url]
    
右鍵在當(dāng)前解決方案里生成一個(gè):Add Web Deployment Project 項(xiàng)目, 在該項(xiàng)目里就可以設(shè)置生成DLL的命名方式了,以后生成該項(xiàng)目就可以生成相應(yīng)的網(wǎng)站!原有的發(fā)布網(wǎng)站的功能可以退休了!

參考微軟原文
VS2005發(fā)布網(wǎng)站時(shí)不會(huì)像VS2003一樣生成規(guī)則的DLL文件、而生成的DLL文件名含有隨機(jī)數(shù)且不能一個(gè)項(xiàng)目生成一個(gè)DLL文件、讓人有一些遺憾、為了做到像vs2003一樣,微軟發(fā)布了WebDeployment Project插件可解決此問題
下載地址
1、下載后安裝、右鍵選擇vs2005中的項(xiàng)目、會(huì)出現(xiàn)一個(gè)選項(xiàng)"Add Web Deployment Project"([url]http://www.cnblogs.com/chy710[/url])

2、選擇添加一個(gè)WebDeployment Project(輸入程序集名稱和發(fā)布地址)

3、此時(shí)解決方案中會(huì)多出一個(gè)項(xiàng)目([url]http://www.cnblogs.com/chy710[/url])

4、右鍵選擇該項(xiàng)目設(shè)置相應(yīng)屬性


5、右鍵選擇該項(xiàng)目選擇“生成”、此時(shí)會(huì)發(fā)布網(wǎng)站到指定的目錄、生成DLL文件同vs2003一樣、更新時(shí)只需上傳DLL文件
([url]http://www.cnblogs.com/chy710[/url])
我運(yùn)行發(fā)現(xiàn)這個(gè)錯(cuò),
錯(cuò)誤 1 “aspnet_merge.exe”已退出,代碼為 1。 C:"Program Files"MSBuild"Microsoft"WebDeployment"v8.0"Microsoft.WebDeployment.targets 574 9 DaishuSite
后來網(wǎng)上查了下。是類存在同名的緣故。
將VS 2005的工具-選項(xiàng)-項(xiàng)目和解決方案-生成并運(yùn)行,設(shè)置“MSBuild 項(xiàng)目生成輸出詳細(xì)信息”,選擇“詳細(xì)”。再次生成Web Deployment Projects項(xiàng)目,“輸出”框內(nèi)的信息就變得非常豐富了;這樣就可以查看哪里出錯(cuò)了

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多