共用方式為


發行網站

更新:2007 年 11 月

Visual Web Developer 可讓您發行網站,如此會編譯站台並將輸出複製到指定的位置,例如實際執行伺服器 (Production Server)。發行可完成下列工作:

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

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

注意事項:

在 Visual Web Developer Express 版中無法使用發行網站公用程式。

發行網站可簡單地將網站複製到目標 Web 伺服器,而有下列優點:

  • 先行編譯處理序會找出任何編譯錯誤,並識別組態檔中的錯誤。

  • 由於頁面已經編譯,個別頁面的初始回應速度會比較快。如果將頁面複製到站台而不是先編譯頁面,會在首次要求時編譯頁面,然後將編譯輸出進行快取。

  • 沒有程式碼會隨站台一起部署,該站台會提供檔案的安全性考量。您可以使用標記保護 (編譯 .aspx 檔案) 發行站台,或不使用標記保護 (將 .aspx 檔案依原樣複製到站台,並可讓您在部署之後變更檔案的配置) 發行站台。

    注意事項:

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

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

先行編譯

發行的第一個步驟是先行編譯網站。針對發行所進行的先行編譯,與直接進行的先行編譯 (在 Visual Web Developer 中稱為建置) 有一些不同。先行編譯所執行的編譯處理序,本來就與當瀏覽器中要求動態編譯頁面時,通常會發生的處理序相同。先行編譯器會產生頁面的組件,包括標記和程式碼,它也會編譯 App_Code、App_GlobalResources、App_LocalResources 和 App_Themes 資料夾中的檔案。

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

在先行編譯和建置之間選擇

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

寫入先行編譯輸出

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

注意事項:

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

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

注意事項:

如果使用 Visual Studio 開啟先行編譯的網站,就無法建置 (Build) 網站。建置選項將會關閉。建議您編輯原始網站中的檔案、先行編譯網站,然後再加以發行。

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

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

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

請參閱

工作

逐步解說:發行網站

概念

使用複製網站工具複製網站