原文來自:http://hi.baidu.com/%CF%F4%CF%F4gd/blog/item/6dc88d0f6f178c326a60fb0c.html
這是本人碰到過的一個筆試題目,寫的時候不怎麼清楚明白,呵呵。學習一下了
1、使用XCOPY部署
2、使用Visual studio的Copy Web Site功能部署
3、使用visual studio的Precompilation先行編譯部署
下面對上述的三種方法分別予以介紹:
使用XCOPY部署
首先,我們先使用visual studio express 建立一個WEB SITE,選擇VB.NET或者C#,之後建立一個名為deployment的應用。在這個應用中,由於我們的目的是著重安裝部署,所以可以隨便拉一個按 鈕,然後在這按鈕的onclick事件中,寫入一些螢幕輸出之類的語句就可以了。
當編譯該程式後,我們開始使用XCOPY來部署應用程式。 XCOPY是.NET在應用程式的部署方面的最簡單方法。XCOPY簡單地將你的WEB應用程式的所有檔案拷貝到目的伺服器的指定路徑下,比如,使用命令如下:
xcopy d:/intetpub/wwwroot/myprojects/developer/deployment c:/temp /e /k /r /o /h /I
執行後,結果如,會將當前的應用deployment的所有檔案拷貝到c盤的TEMP目錄中去,之後,在IIS中建立虛擬目錄,指向該目錄就可以了。關於XCOPY的使用方法,請參考具體的相關命令協助。
使用Visual studio的Copy Web Site功能部署
Visual studio的Copy Web Site功能,可以很方便地讓我們進行WEB應用程式的部署和安裝。使用該功能,可以將WEB工程複製到同一伺服器或者其他伺服器上,或者FTP上。但要 注意的時,使用該功能時,僅僅是將檔案複製到目的路徑中去,並不執行任何的編譯操作。
在Visual studio express 中,選擇web-site菜單中的copy web site,將出現下面的對話方塊:
其中,左邊部分是源檔案的路徑(source web sites),右邊部分是你將要部署的目的路徑。留意一下右邊的MOVE FILES下的下拉選擇框,裡面提供了三種檔案的複製方式供你選擇:
1、All source Web files to remote Web site(所有的WEB檔案複製到遠端WEB網站中)
2、All remote Web files to source Web site(所有的遠程WEB網站檔案複製到本地網站)
3、Synchronize source and remote Web sites(同步本地WEB網站和遠程WEB網站的檔案)。
在使用時,先點擊CONNECTING TO…旁邊的小表徵圖,彈出的對話方塊如:
這裡可以選擇將你本地的WEB應用程式複製到什麼地方,比如 是選擇FILE SYSTEM(本地檔案系統),LOCAL IIS(本地的IIS伺服器),FTP網站,或者是遠端站台。在選擇好目的路徑後,就可以點選"COPY WEB SITE"按鈕,系統會自動將應用系統的檔案複製到目的路徑中去,並顯示複製後的日誌記錄。
使用Visual Studio的Precompilation先行編譯部署
ASP.NET 2.0中的一大新特性,是採用了動態編譯,使到可以在編輯或者儲存修改後的網頁後,直接在瀏覽器中訪問,而不需要再次編譯,但這有個缺點,編譯過程將導致 第一次請求 ASP.NET 頁面時的響應速度比後續請求慢,而在ASP.NET 2.0中,另外提供了先行編譯的功能(Precompiling),使用該功能,可以立即將結果顯示給第一個使用者,並且可以在批編譯過程中檢測到 ASPX 頁面中的任何錯誤。但是,批編譯確實會延長應用程式的啟動時間,而且必須內建在 web.config 檔案中。
而ASP.NET 2.0的先行編譯,又分為兩種,第一種是In-place編譯,該編譯只需要在瀏覽器中輸入http://網站名稱/WebApp名稱/PreCompile.axd,系統就會將WebApp裡面所有的頁面先給編譯一遍,運行後如:
在ASP.NET 2.0中,提供一種更新的編譯部署方式,叫Precompilation deployment(部署先行編譯)。Net Framework 2.0提供了一個命令列的工具(aspnet_compiler.exe),可以將WebApp中所有的代碼、頁面(包括HTML)、靜態檔案全部編譯進 dll,然後進行部署,得到的目標系統中,只包含編譯後的dll,甚至連HTML分頁檔都是不存在的,大大增強了系統的安全行,但是瀏覽起來和普通的 ASP.NET 應用沒有任何區別。使用方法如下:
aspnet_compiler.exe一般在WINNT目錄下的.net framework 2.0子目錄下可以找到,使用格式為:
| aspnet_compiler -v /<websitename> -p <source> <destination> |
其中,websitename為你要部署的web應用程式的虛擬目錄名,<source>為你要部署的web應用程式的實體路徑,〈destination>為即將部署的應用程式的目標實體路徑,比如:
aspnet_compiler -v /Deployment -p c:/inetpub/wwwroot/myprojects/Developer/deployment c:/compiled |
則所有的檔案都會被部署先行編譯到c盤的compiled目錄下,而且該目錄下,你會發現沒有任何的代碼檔案和HTML檔案了。