Share via


ASP.NET 部署概觀

更新:2007 年 11 月

開發網站之後,可以將網站部署至 Web 伺服器進行測試 (開發用伺服器),或部署至使用者可以在其中使用站台的伺服器 (實際執行伺服器)。您有幾種部署網站的選項,包括先行編譯網站。

這個主題包含:

  • 案例

  • 部署功能

  • 背景

  • 程式碼範例

案例

一旦在 Visual Studio 中開發網站完畢,就可以選取下列其中一個部署方法:

  • 使用 Visual Studio 中的工具,將網站中的檔案複製到目標伺服器。

  • 先行編譯網站並將輸出複製到指定的位置,例如實際執行伺服器 (Production Server)。

回到頁首

功能

Visual Studio 提供下列網站部署選項:

  • 複製網站工具,可將目前的網站複製到目標伺服器。

  • 發行網站公用程式,可將網站編譯為一組可執行檔。隨後,您可以使用所需的任何方法將檔案複製至目標伺服器。

    注意事項:

    Microsoft Visual Web Developer Express 版並未提供發行網站公用程式。

回到頁首

背景

Visual Studio 提供複製網站工具,可將目前的網站檔案複製到目標伺服器。它同時提供發行網站公用程式,可將網站編譯為一組可執行檔。然後,再使用所需的任何方法將檔案複製至目標伺服器。

注意事項:

您也可以使用 Web 應用程式專案來建立網站。在 Web 應用程式專案中,所有的類別檔案都會被編譯成單一組件。如需詳細資訊,請參閱 Web 應用程式專案概觀

除了建立網站並將網站部署至目標伺服器之外,您也可以建立檔案傳輸通訊協定 (File Transfer Protocol,FTP) 網站。如此一來,就可以在目標伺服器上直接建立及編輯檔案。當您在裝載的伺服器上使用網站時,這種方式會很簡便。

複製網站工具

複製網站工具就像 FTP 公用程式一樣,可讓您在目標伺服器上開啟資料夾,然後在目前網站和目標網站之間上載和下載檔案。複製網站工具還支援同步處理功能,這個功能會檢查兩個網站中的檔案,並自動確定兩個網站中都有最新版本的檔案。

注意事項:

如果目標伺服器為 FTP 伺服器,則您必須透過建立 FTP 站台,才能開啟並編輯伺服器上的檔案。如需詳細資訊,請參閱部署 FTP 的網站

複製網站工具支援下列功能:

  • 您可以將原始程式檔 (包括 .aspx 檔和類別檔案) 複製到目標伺服器。在此情況下,網頁會在收到要求時進行動態編譯。

  • 您可以從 Visual Studio 所支援的任何網站種類中開啟與複製檔案,包括本機網際網路資訊服務 (IIS)、遠端 IIS 和 FTP 站台。目標伺服器不需要 FrontPage Server Extensions。

  • 同步處理功能會檢查兩個網站中的檔案,並自動確定兩個網站中都有最新版本的檔案。

  • 複製應用程式檔案前,複製網站工具會將名為 App_offline.htm 的檔案放置在目標網站的根目錄下。如果 App_offline.htm 檔存在,則對網站的任何要求都會重新導向至該檔案。檔案會顯示易記的訊息,讓用戶端知道網站正在更新。複製所有的網站檔案後,複製網站工具會從目標網站刪除 App_offline.htm 檔案。

發行網站公用程式

發行網站公用程式會先行編譯網站內容,包括 Web 網頁 (.aspx 檔案) 和程式碼,然後將輸出複製到指定的目錄或伺服器位置。您可以直接當做先行編譯處理序的一部分進行發行,或者在本機先行編譯之後再自行複製檔案。發行網站公用程式會編譯網站並移除檔案外的原始程式碼,僅保留網頁和已編譯之組件的 Stub 檔。使用者要求網頁時,ASP.NET 會完成先行編譯之組件的要求。

注意事項:

Microsoft Visual Web Developer Express 版並未提供發行網站公用程式。

Web 應用程式專案

您可以使用 Web 應用程式專案來建立網站,替代使用發行網站公用程式的方案。在 Web 應用程式專案中,所有的類別檔案都會被編譯成單一組件。只有該組件必須與 .aspx 和 .ascx 檔案以及其他靜態內容檔案一起部署 (這個 Web 應用程式專案模型與 Visual Studio .NET 2003 中所使用的模型很類似)。在這個模型中,.aspx 檔案只有在瀏覽器中執行時才會進行編譯。如需 Web 應用程式專案的詳細資訊,請參閱 Web 應用程式專案概觀

選擇部署工具

是否選取複製網站工具或發行網站公用程式,需視您要使用及維護站台的方法而定。

選擇複製網站工具

使用複製網站工具的優點如下:

  • 部署是將檔案從網站複製到目標電腦的簡單事宜。

  • 您可以使用 Visual Studio 支援的任何連線通訊協定部署至目標電腦。您可以複製到網路上其他電腦的共用資料夾中。您可以使用 FTP 複製到伺服器,或是使用 HTTP 通訊協定複製到支援 FrontPage Server Extensions 的伺服器。

  • 您可以直接在伺服器上變更或修正網頁錯誤。

  • 如果正在處理其檔案儲存在中央伺服器的專案,您可以使用同步功能以確定本機和遠端的檔案版本是否同步。

使用複製網站工具的缺點如下:

  • 將會以原樣複製站台。因此,如果有任何檔案包含編譯錯誤,在某人 (可能是使用者) 執行會引發錯誤的網頁之前,並不會發現此問題。

選擇發行網站公用程式

使用發行網站公用程式的優點如下:

  • 先行編譯處理序可協助您找出編譯階段錯誤,以及 Web.config 檔案和其他非程式碼檔案中可能的錯誤。

  • 原始程式碼會從網站中移除,選擇性地包括 ASP.NET Web 檔案和使用者控制項中的標記。這提供了可保護您的智慧財產權的方法,而其他人就更難存取網站的原始程式碼。

  • 由於網站中的頁面都已經過編譯,首次要求這些頁面時就不需要動態編譯了。這樣子可以減少網頁的初始回應時間(動態編譯頁面時,會對後續的要求快取輸出)。

使用發行網站公用程式的缺點如下:

  • 視您指定的發行選項而定,如果變更了網站則可能需要重新編譯網站。因此,如果您正在開發網站且經常變更網頁的話,使用「發行網站」公用程式可能不太實用。

  • 發行網站公用程式無法將編譯好的網站部署至遠端伺服器。它只會複製到本機電腦或是區域網路中的其他電腦。

    注意事項:

    發行網站公用程式會覆寫目標資料夾與任何子資料夾中的檔案。請確定是發行至可放心地刪除現有內容的位置。

使用複製網站工具

您可以使用複製網站工具將檔案從本機電腦移至開發用伺服器 (Staging Server) 或實際執行伺服器。在您無法從遠端站台開啟檔案進行編輯的情況下,複製網站工具會特別有用。您可以使用複製網站工具將檔案複製到本機電腦、進行編輯,然後將檔案複製回遠端站台。在您完成部署時,也可以使用此工具將檔案從開發用伺服器複製到實際執行伺服器。

注意事項:

如果將包含參考的應用程式複製到在 GAC 中註冊的自訂元件,則元件不會和應用程式一起複製。如需詳細資訊,請參閱 HOW TO:加入參考至網站中的 .NET 或 COM 元件

來源和遠端站台

複製網站工具可在「來源站台」和「遠端站台」之間複製檔案。這兩個詞彙是用以區分複製網站工具所正在使用的兩個站台,並有其特定的意義:

  • 來源站台:來源站台是目前您在 Visual Studio 中開啟的站台。

  • 遠端站台:遠端站台是您要將檔案複製過去的站台。遠端站台可以是您使用 FrontPage Server Extensions 或 FTP 進行存取之另一台電腦上的位置。在這些情況中,站台實際上位於遠端。但是,遠端站台也可以是您自己電腦上的其他站台。例如,您可以從電腦上的檔案系統網站發行至同一台電腦上的本機 IIS 網站。在上述情形中,雖然該站台是在本機電腦上,不過如果使用複製網站工具的話就是遠端站台。

請注意,來源站台並不一定是複製的來源。您可以從遠端站台複製到來源站台。

同步處理站台

同步處理會檢查本機和遠端站台上的檔案,並確保這兩個站台上的所有檔案都是最新的。例如,如果遠端站台上的檔案版本比原始站台上的相同檔案還新,同步處理檔案就會將遠端站台上的檔案複製到原始站台。

複製網站工具不會合併名稱相同但內容不同的檔案。在此情形中,同步處理會讓您指定要保留哪個檔案版本。

同步處理可讓工具更適合在多開發人員的環境上使用,在此環境中開發人員會在他們的本機電腦上保留網站的複本。個別的開發人員可將其最新的變更複製到共用的遠端伺服器上。同時,他們可以使用其他開發人員所提供的變更檔案來更新自己的本機電腦。專案的新進開發人員也可以很快地取得網站的所有檔案複本。若要這麼做,他們可以先在本機電腦上建立本機網站,然後使用共用伺服器上的網站來同步處理。

檔案狀態

若要同步處理檔案,複製網站工具需要有關兩個站台上的檔案狀態資訊。因此,工具所維護的資訊包括檔案的時間戳記,以及執行同步處理時所需要的其他資訊。例如,工具會維護前次檢查檔案的時間清單,可讓工具判斷是否已刪除檔案之類的資訊。

當您連接到站台時 (或重新整理),工具會比較這兩個站台上的檔案時間戳記,以及對這兩個站台儲存的資訊,並報告每個檔案的狀態。下表顯示檔案的狀態。

狀態

描述

未變更

自前次複製檔案以來,尚未變更檔案。

已變更

檔案的時間戳記比前次複製檔案時的時間戳記還新。

新增

自前次複製站台以來,已加入此檔案。

已刪除

自前次複製站台以來,已移除此檔案。如果在複製網站工具中選取 [顯示刪除的檔案],視窗中會顯示檔案項目。

使用發行網站公用程式

發行網站公用程式可讓您發行自己的網站。這樣會編譯網站並將輸出複製到指定的位置,例如實際執行伺服器。

注意事項:

Visual Web Developer Express 版並未提供發行網站公用程式。

發行可完成下列工作:

  • 將頁面、App_Code folder 中的原始程式碼等,先行編譯到可執行的輸出。

  • 將可執行的輸出寫入目標資料夾。

    注意事項:

    如果將包含參考的應用程式發行至在 GAC 中註冊的自訂元件,則元件不會隨應用程式一起發行。如需詳細資訊,請參閱 HOW TO:加入參考至網站中的 .NET 或 COM 元件

如需詳細資訊,請參閱 ASP.NET 先行編譯概觀

先行編譯

發行的第一個步驟是先行編譯網站。先行編譯所執行的編譯處理序,與瀏覽器中初次要求動態編譯頁面時,通常會發生的處理序相同。先行編譯處理序會產生頁面的組件,包括標記和程式碼,它也會編譯 App_Code、App_GlobalResources、App_LocalResources 和 App_Themes 資料夾中的檔案。

您可以編譯單一檔案 ASP.NET 網頁和程式碼後置 (Code-Behind) 的頁面。如需這兩個模型的詳細資訊,請參閱 ASP.NET Web 網頁程式碼模型

發行中的先行編譯步驟與在 Visual Studio 中建置網站同時進行測試時所發生的編譯有所不同。建置會編譯站台,或者目前的頁面和任何相依檔案,然後再執行。建置處理序是一種測試的形式,而且不會產生您可以部署的輸出。對照之下,發行期間的先行編譯會在指定的資料夾中 (可以部署至實際執行伺服器的資料夾) 建立輸出。

寫入先行編譯輸出

先行編譯處理序完成時,輸出會寫入您指定的資料夾中。您可以將輸出寫入檔案系統中可使用檔案傳輸通訊協定 (File Transfer Protocol,FTP) 或 HTTP 存取的任何資料夾。您必須具有適當的使用權限,才能寫入目標站台。

注意事項:

發行處理序只會部署網站資料夾和子資料夾中的檔案,但是不會部署 Machine.config 檔案。因此,目標 Web 伺服器的組態可能與電腦上的組態不同,而這樣可能會影響應用程式的行為。

您可以在開發用伺服器 (Staging Server) 或實際執行伺服器上指定目標資料夾,或將輸出寫入本機電腦上的資料夾。如果在實際執行伺服器上指定資料夾,您就可以在同一個步驟中進行先行編譯和部署。如果將輸出寫入不屬於網站一部分的資料夾,則可以在不同的步驟中將輸出複製到伺服器。

注意事項:

如果使用 Visual Studio 開啟先行編譯的網站,就無法建置網站。建置選項將會關閉。若要變更已發行的網站,請在原始網站中編輯檔案、重新編譯網站,然後再加以發行。

編譯處理序的輸出包括對任何程式碼或頁面編譯的組件。如果您選取的選項允許更新先行編譯的網站,.aspx、.asmx 和 .ashx 檔案的任何程式碼後置類別都會編譯至組件。但是,.aspx、.asmx 和 .ashx 檔案本身都會以原樣複製到目標資料夾,這樣您就可以在部署網站後變更這些檔案的配置。若是可以更新之先行編譯的網站,單一檔案頁面中的程式碼就不會編譯至組件,不過會部署為原始程式碼。

靜態檔案並不會進行編譯。但是,靜態檔案會以原樣複製到輸出資料夾。靜態檔案包括圖形、.htm 或 .html 檔案、文字檔等等。

如果在先行編譯期間發生錯誤,會在 [輸出] 視窗和 [錯誤清單] 視窗中報告錯誤。先行編譯期間發生的錯誤會阻礙編譯和發行站台的進行。

回到頁首

程式碼範例

HOW TO:使用複製網站工具複製網站檔案

HOW TO:先行編譯 ASP.NET 網站以便部署

HOW TO:為先行編譯的網站簽署組件

HOW TO:建立先行編譯網站的建立版本組件

HOW TO:使用 ASP.NET 編譯工具產生固定名稱

HOW TO:設定發行的網站

逐步解說:發行網站

逐步解說:使用複製網站工具複製網站

回到頁首

請參閱

概念

Web 應用程式專案概觀

ASP.NET 先行編譯概觀

參考

回到頁首