進階的企業 Web 部署

作者:Jason Lee

本教學課程將示範如何在許多企業部署案例中執行所需或想要的各種工作。

如需這些教學課程的義大利文翻譯,請流覽 http://www.lucamorelli.it

這構成一系列教學課程的一部分,以名為 Fabrikam, Inc 的虛構公司企業部署需求為基礎。本教學課程系列使用範例解決方案連絡人 管理員 解決方案來代表具有實際複雜層級的 Web 應用程式,包括 ASP.NET MVC 3 應用程式、Windows Communication Foundation (WCF) 服務和資料庫專案。

這些教學課程的核心部署方法是以 瞭解建置程式中所述的分割專案檔方法為基礎,其中建置程式是由兩個專案檔控制,一個包含適用于每個目的地環境的組建指示,另一個包含環境特定的組建和部署設定。 在建置階段,環境特定的專案檔會合並到與環境無關的專案檔中,以形成一組完整的建置指示。

情節概觀

企業 Web 部署:案例概觀說明這些教學課程的高階案例。 建議您先檢閱本主題,再開始進行本教學課程。

如何使用本教學課程

  • 本教學課程中的每個主題都是獨立的,可解決企業部署案例中發生的特定挑戰或問題。 您不需要依照任何特定連續處理這些主題。 不過,本教學課程涵蓋一些進階工作。 因此,您應該熟悉 企業版 Web 部署 教學課程涵蓋的概念和技術,以充分利用此內容。
  • 本教學課程包含下列主題:
  • 執行「假設」部署。 在很多情況下,您會想要在實際進行任何變更之前,先判斷建議部署對目標環境或任何現有內容的影響。 本主題描述如何執行「假設」部署來產生記錄檔和資料庫更新腳本,就像您已將內容部署到目標環境一樣,而不會實際進行任何變更。 分析這些資源可協助您在即時部署前找出任何潛在問題。
  • 自訂多個環境的資料庫部署。 當您將資料庫專案部署到多個目的地時,通常會想要自訂每個目標環境的部署屬性。 例如,在測試環境中,您通常會在每個部署上重新建立資料庫,而在預備或生產環境中,您更可能會進行累加式更新來保留資料。 本主題描述如何為每個目標環境建立環境特定的部署組態 (.sqldeployment) 檔案,以將這些屬性變更併入部署邏輯中。
  • 將資料庫角色成員資格部署至測試環境。 當您在每次部署上重新建立資料庫時,例如,在持續整合 (CI) 建置和部署至測試環境時,您通常需要每次設定資料庫角色成員資格。 例如,您通常需要將許可權授與與 Web 應用程式相關聯的應用程式集區身分識別。 本主題描述如何將部署後 SQL 腳本新增至部署邏輯,以自動化此程式。
  • 將成員資格資料庫部署到企業環境。 ASP.NET 成員資格資料庫具有各種特性,可能會使部署程式複雜。 例如,僅限架構的部署會將資料庫保持非運作狀態。 在大部分情況下,最好是直接在每個目的地環境中建立成員資格資料庫。 不過,如果您確實必須部署成員資格資料庫,本主題將說明一些可用來滿足固有挑戰的方法。
  • 排除部署中的檔案和資料夾。 在某些情況下,您會想要針對特定目的地環境量身打造 Web 套件的內容。 例如,當您部署至測試環境時,您可能會想要包含 JavaScript 程式庫的完整版本,以支援用戶端偵錯,但當您部署至預備環境或生產環境時,請使用程式庫的縮排版本。 本主題描述如何從套件建立程式排除特定檔案和資料夾。
  • 使用 Web Deploy 離線 Web 應用程式。 當您將解決方案部署到預備環境或生產環境時,通常會想要讓 Web 應用程式在部署程式期間離線。 本主題描述如何在部署程式開始時將 App_offline.htm 檔案新增至 Web 應用程式,並在結尾移除它。 當 App_offline.htm 檔案就緒時,流覽至 Web 應用程式的任何使用者都會自動重新導向 至App_offline.htm 檔案。
  • 從 MSBuild 執行Windows PowerShell腳本。 許多部署案例都需要更複雜的部署後動作,例如將自訂事件來源新增至登錄或設定SQL Server實例之間的複寫。 這些動作通常是透過Windows PowerShell腳本來完成。 本主題描述如何在建置和部署程式中,從Microsoft Build Engine (MSBuild) 專案檔執行Windows PowerShell腳本。
  • 封裝程式疑難排解。 Web 發佈管線 (WPP) 會定義名為 EnablePackageProcessLoggingAndAssert 的 MSBuild 屬性,可用來產生 Web 應用程式專案封裝程式的深入資訊。 本主題描述 屬性的功能,以及如何使用它。

重要技術

本教學課程著重于如何使用這些產品和技術來支援自動化建置和 Web 部署:

  • Visual Studio 2010 和 Team Foundation Server (TFS) 2010
  • MSBuild 和 TFS 小組組建
  • Internet Information Services (IIS) 7.5
  • IIS Web 部署工具 (Web Deploy) 2.1
  • VSDBCMD.exe資料庫部署公用程式

本系列中的其他教學課程

這構成一系列五個企業級 Web 部署教學課程的一部分。 這些是系列中的其他教學課程:

  • 在企業案例中部署 Web 應用程式。 本簡介內容提供教學課程系列的內容背景。 它會描述教學課程案例,並說明整個系列中描述的工作和逐步解說如何融入更廣泛的應用程式生命週期管理 (ALM) 程式。
  • 企業中的 Web 部署。 本教學課程提供 MSBuild 專案檔、WPP、Web Deploy 和其他相關技術的概念簡介。 它說明如何使用這些工具來管理複雜的部署程式。
  • 設定 Web 部署的伺服器環境。 本教學課程說明如何設定 Windows 伺服器以支援各種部署案例,包括使用 Web Deployment Agent​ 服務進行遠端 Web 套件部署, (遠端代理程式) 或 Web 部署處理常式和遠端資料庫部署。 它提供針對您自己的環境選擇適當部署方法的指引,並說明如何使用 Web Farm Framework (WFF) ,在伺服器陣列中的所有 Web 服務器上複寫已部署的 Web 應用程式。
  • 設定用於 Web 部署的 Team Foundation Server。 本教學課程說明如何設定 TFS 以支援各種部署案例,包括自動化部署作為 CI 程式的一部分,以及手動觸發的特定組建部署。