ASP.NET Web 部署 - 建議資源
本主題提供如何使用 Visual Studio 2010、Visual Web Developer 2010 及更高版本將 ASP.NET Web 應用程式部署 (發佈) 到 IIS 的文件資源連結。
如果您知道有優秀的部落格文章、stackoverflow 討論串或任何其他有用的連結,請傳送電子郵件給我們,並附上該連結。
注意
其中許多資源描述了僅在安裝最新版本的 Visual Studio Web 發佈更新後才可用的部署功能。 某些功能僅在 Visual Studio 2012 或 Visual Studio 2013 中可用。
本主題包含下列幾節:
- 了解 Web 專案的部署選項
- 尋找 ASP.NET 應用程式的託管提供者
- 從 Visual Studio 部署 Web 應用程式
- 透過建立和安裝 Web 部署套件來部署 Web 應用程式
- 使用持續整合 (CI) 流程部署 Web 應用程式
- 在部署期間使用 Web.config 轉換更改目標 Web.config 檔案或 app.config 檔案中的設定
- 在部署期間使用 Web 部署參數變更目標 Web 應用程式中的設定
- 確保應用程式在部署期間離線
- 作為 Web 應用程式部署的一部分來部署資料庫,或對資料庫進行更改
- 與 Web 應用程式部署分開部署資料庫
- 部署使用 ASP.NET 應用程式服務 (例如成員資格和分析) 的 Web 應用程式
- 預編譯部署
- 部署內部網路 Web 應用程式
- 自動執行非開箱即用的常見部署任務
- 設定 Web 伺服器,以便開發人員可以使用 Web Deploy 向其部署 Web 應用程式
- 為託管提供者設定伺服器
- 疑難排解部署問題
- 取得有關特定部署問題的協助
- 其他資源
了解 Web 專案的部署選項
- Visual Studio 和 ASP.NET 的 Web 部署概述 (MSDN)。
- 如何部署 Windows Azure 網站。 說明用於將 Web 專案部署到 Windows Azure 網站的選項和資源連結,包括持續傳遞 (從原始檔控制自動實作) 以及使用 Visual Studio。
- Visual Studio 2012 Web 發佈改進 (影片由 Scott Hanselman 提供)。
- VS 2010 中的 Web 部署概述貼文 (Vishal Joshi 的部落格)。 這是一篇較舊的部落格文章,但它連結的一些 Visual Studio 2010 資源包含仍與 Visual Studio 2012 相關的資訊。
尋找 ASP.NET 應用程式的託管提供者
從 Visual Studio 部署 Web 應用程式
- 如何部署 Windows Azure 網站。 說明選項並提供用於將 Web 專案部署到 Windows Azure 網站的資源連結。 包括從 Visual Studio 進行部署的部分。
- 使用 Visual Studio 進行 ASP.NET Web 部署。 由 12 部分組成的教學課程系列展示如何使用 SQL Server 資料庫部署 Web 應用程式。 對於資料庫部署,請同時使用 dbDacFx 提供者和實體架構程式碼優先遷移。 還包括有關 Web.config 檔案轉換、部署單一檔案、命令列部署,以及如何透過編輯 .pubxml 檔案自訂 Visual Studio Web 發佈管線的資訊。 適用於所有 ASP.NET Web 專案,包括 Web Forms、MVC 和 Web API。
- 作法:在 Visual Studio 中使用一鍵發佈來部署 Web 專案 (Visual Studio Web 發佈精靈的參考資訊。)
- 使用 Visual Studio 部署具有 SQL Server Compact 的 ASP.NET Web 應用程式。 列在本節頂端的是早期版本的 使用 Visual Studio 進行 ASP.NET Web 部署。 現在主要用於了解如何部署 SQL Server Compact 資料庫以及如何從 SQL Server Compact 遷移到 SQL Server 完整版的資訊。
- 使用儲存表、佇列和 Blob 的 .NET 多層應用程式 (Microsoft Azure 網站)。 由 5 部分組成的教學課程系列展示如何建立 MVC 專案並將其部署到 Windows Azure 雲端服務。
透過建立和安裝 Web 部署套件來部署 Web 應用程式
- 作法:在 Visual Studio 中建立 Web 部署套件 (MSDN)。
- 作法:使用 Visual Studio 建立的 deploy.cmd 檔案安裝部署套件 (MSDN)。
- 使用 Web 部署套件部署到開發盒上的 IIS 和第三方主機 (Sayed Hashimi 的部落格)。 如何使用 IIS 管理器在本機電腦和支援 IIS 管理器進行遠端管理的託管公司的 IIS 中安裝部署套件。
- 從 Visual Studio 2010 建置 Web 部署套件 (IIS.NET 網站)。 包括命令列包建立和安裝的說明。
- 封裝一次,隨處發佈 (Sayed Hashimi 的部落格)。 引入了一個 NuGet 套件,它可以自動執行多個目標環境的 Web.config 檔案轉換過程,以便您可以將一個套件部署到多台伺服器。 另請參閱 Sayed Hashimi 的 PackageWeb 影片。
另請參閱以下章節。
使用持續整合 (CI) 流程部署 Web 應用程式
- 持續整合和持續交付 (使用 Windows Azure 建立真實世界的雲端應用程式)。 介紹持續整合和持續交付的電子書章節。
- 如何部署 Windows Azure 網站。 說明用於將 Web 專案部署到 Windows Azure 網站的選項和資源連結。 包括有關從原始碼控制自動部署的部分。
- 在企業情境中部署 Web應用程式。 由 40 部分組成的教學課程系列展示如何使用 Visual Studio 2010 和 Team Foundation Server 2010 在 CI 流程中自動部署。
- Microsoft Build Engine 內部:使用 MSBuild 和 Team Foundation Build,作者:Sayed Hashimi 和 William Bartholomew。 這是一本書,不是 Web 資源,但它是學習如何為持續整合情境設定 MSBuild 的重要指南。
- MSBuild 擴充套件。 包括部署任務。
- Team Foundation 建立自訂指南。 ALM Rangers 提供的有關設定 Team Foundation Server 的文件涵蓋 Web 部署,並包含教學課程和影片。
- SlowCheetah XML 從 CI 伺服器轉換 (Sayed Hashimi 的部落格)。 解釋如何使用 SlowCheetah (一個 Visual Studio 載入項) 轉換 app.config 和其他 XML 檔案。
另請參閱本頁後面的確保應用程式在部署期間離線。
在部署期間使用 Web.config 轉換更改目標 Web.config 檔案或 app.config 檔案中的設定
- Web.config 檔案轉換。
- 使用 Visual Studio 進行 Web 專案部署的 Web.config 轉換語法 (MSDN)。
- Web Tools 2012.2 - web.config 轉換 (Sayed Hashimi 的 YouTube 影片)。 示範如何設定和預覽 Web.config 轉換。
- 如何停用 Web.config 轉換? (MSDN)。
- 我什麼時候應該使用 Web 部署參數而不是 Web.config 轉換? (MSDN)。
- XDT (XML 文件轉換) 在 codeplex.com 上發佈 (.NET Web 開發與工具部落格)。 宣布提供 Web.config 文件轉換引擎的源程式碼並列出了一些使用它的工具。
- Windows Azure 網站:應用程式字串和連接字串如何運作 (Microsoft Azure 部落格)。 如果您的目標環境是 Windows Azure 網站並且您想要轉換
appSettings
或connectionStrings
,則可以使用 Web.config 的替代方法進行轉換。
在部署期間使用 Web 部署參數變更目標 Web 應用程式中的設定
- 作法:在 Web 部署套件中使用 Web 部署參數 (MSDN)。
- MSDeploy:如何根據發佈設定檔更新發佈時的應用程式設定 (Sayed Hashimi 的部落格)。 示範如何將 Web 部署參數整合到 Visual Studio 發佈設定檔中。
- Web 部署參數化 (IIS.NET 網站)。
- Web 部署參數化實務 (Vishal Joshi 的部落格)。
- Web 部署參數化與 Web.config 轉換 (Vishal Joshi 的部落格)。
- Windows Azure 網站:應用程式字串和連接字串如何運作 (Microsoft Azure 部落格)。 如果您的目標環境是 Windows Azure 網站並且您想要參數化
appSettings
或connectionStrings
,則可以選擇 Web 部署參數。
確保應用程式在部署期間離線
- 使用 Visual Studio 的 ASP.NET Web 部署:部署程式碼更新。 請參閱在部署期間使應用程式離線一節。
- 在發佈之前使應用程式離線 (IIS.net 網站)。 解釋 Web Deploy 3.0 內建的一項功能,可自動處理 app_offline.htm 檔案。 此功能不適用於自訂 app_offline.htm 檔案。
- 如何在發佈期間使您的 Web 應用程式離線 (Sayed Hashimi 的部落格)。 如何自動化使用自訂 app_offline.htm 檔案的過程。
- Web 發佈應用程式離線更新和 usechecksum (Microsoft Web 開發部落格)。 自動使用 app_offline.htm 檔案的另一個選項。
- Web 部署 3.5 RTW (IIS.net 網站)。 Web Deploy 3.5 中針對自訂 app_offline.htm 檔案的新功能。
作為 Web 應用程式部署的一部分來部署資料庫或對資料庫進行更改
- 在 Visual Studio 中設定資料庫部署 (MSDN)。 使用 Web 專案部署資料庫的選項概述。
- 使用 Visual Studio 進行 ASP.NET Web 部署。 由 12 部分組成的教學課程系列展示了使用 dbDacFx 提供者和實體架構程式碼優先遷移進行資料庫部署。
- 作法:在 Visual Studio 中使用一鍵發佈來部署 Web 專案 (MSDN)。
- 將具有成員資格、OAuth 和 SQL 資料庫的安全 ASP.NET MVC 5 應用程式部署到 Windows Azure 網站。 這是一個很長的教學課程,用於建立和部署一個應用程式,該應用程式使用單一 SQL Server 資料庫來儲存成員資格和應用程式資料。
- 使用 Visual Studio 部署具有 SQL Server Compact 的 ASP.NET Web 應用程式。 由 12 部分組成的教學課程系列展示如何部署 SQL Server Compact 資料庫以及如何從 SQL Server Compact 遷移到 SQL Server 的完整版本。
另請參閱本頁前面的透過建立和安裝 Web 部署套件來部署 Web 應用程式,和使用持續整合 (CI) 流程部署 Web 應用程式。
與 Web 應用程式部署分開部署資料庫
- SQL Server Data Tools (MSDN)。
- 將資料包含在 SQL Server 資料庫專案中 (SQL Server Data Tools 團隊部落格)。 部署資料庫時如何同時部署架構和資料。
- 如何將資料庫部署到 Windows Azure (Microsoft Azure 網站)
- 將資料庫遷移到 Windows Azure SQL 資料庫 (以前稱為 SQL Azure) (MSDN)。
- 使用 SSDT 將資料庫遷移到 SQL Azure (SQL Server Data Tools 團隊部落格)。
- 將以資料為中心的應用程式遷移到 Windows Azure (MSDN)。
- 將 SQL Server 資料庫移轉到 Windows Azure SQL 資料庫 (MSDN)。
部署使用 ASP.NET 應用程式服務 (例如成員資格和分析) 的 Web 應用程式
- 將具有成員資格、OAuth 和 SQL 資料庫的安全 ASP.NET MVC 5 應用程式部署到 Windows Azure 網站。 這是一個很長的教學課程,用於建立和部署一個應用程式,該應用程式使用單一 SQL Server 資料庫來儲存成員資格和應用程式資料。
- ASP.NET Identity。 ASP.NET Identity 的資源。
- 使用 Visual Studio 進行 ASP.NET Web 部署。 教學課程系列由 12 個章節組成,示範如何部署 ASP.NET 成員資格資料庫。
- 設定使用應用程式服務的網站。 適用於網站項目,但也與 Web 應用程式項目相關。
- 生產網站上的使用者和角色。 適用於網站項目,但也與 Web 應用程式項目相關。
預編譯部署
- ASP.NET Web 應用程式專案預編譯概述 (MSDN)。
- 封裝/發佈 Web 標籤,專案屬性 (MSDN)。
- 進階預編譯設定對話方塊 (MSDN)。
部署內部網路 Web 應用程式
- 在 Visual Studio 2013 中將本機組織驗證選項 (ADFS) 與 ASP.NET 結合使用 (Vittorio Bertocci 的部落格)。
- 如何使用 ASP.NET MVC 建立 Intranet 網站 (MSDN)。 為 Visual Studio 2010 編寫的舊演練並不反映 Visual Studio 2013 中引入的 Intranet 專案範本的重大變更。
自動執行非開箱即用的常見部署任務
- 使用 Visual Studio 進行 ASP.NET Web 部署:部署額外檔案。
- 設定 Web 發佈的資料夾權限 (Sayed Hashimi 的部落格)。
- 如何擴充目標檔案以包含 Web 專案包的登錄設定 (Web 開發工具部落格)。
- 擴展 XML (Web.config) 轉換 (Sayed Hashimi 的部落格)。 示範如何建立自訂 XDT 轉換。
- Web 部署工具 (MSDeploy) 自訂提供者第 1 部分 (Sayed Hashimi 的部落格)。 示範如何建立 Web 部署自訂提供者。
- 如何封裝和部署 COM 元件 (Web 開發工具部落格)。
- 如何封裝 .NET 組件 (Web 開發工具部落格)。 如何將組件部署到 GAC。
設定 Web 伺服器,以便開發人員可以使用 Web Deploy 向其部署 Web 應用程式
- 為管理員和非管理員部署安裝和設定 Web 部署 (IIS.net 網站)。
為託管提供者設定伺服器
- Microsoft ASP.NET 4 託管部署指南 (Microsoft 下載中心)。
- 產生設定檔 XML 檔案 (IIS.net 網站)。
疑難排解部署問題
- 在 Visual Studio 中對 Windows Azure 網站進行疑難排解 (Microsoft Azure 網站)。
- 使用 Visual Studio 進行 ASP.NET Web 部署:疑難排解。
- 解決 Web 部署的常見問題。
- Web 部署錯誤碼 (IIS.net 網站)。
- Visual Studio 和 ASP.NET 的 Web 部署常見問題 (MSDN)。
- IIS 和 ASP.NET 開發伺服器之間的核心差異。
- 開發和生產之間的常見組態差異。
取得有關特定部署問題的協助
- [ASP.NET 設定和部署論壇] (https://forums.asp.net/26.aspx/1?Configuration 和部署)。
- StackOverflow.com。
其他資源
本部分提供了其他資源的連結,這些資源對於了解有關如何使用 Visual Studio 和 IIS 部署工具的更多資訊非常有用。
以下部落格經常包含有關 Visual Studio Web 部署的資訊:
以下資源提供有關 Web 部署 (Visual Studio 用於執行 Web 應用程式專案部署任務的 IIS 架構) 的文件。 您可以在 IIS.net 網站上的 Web 部署工具論壇中詢問有關 Web 部署的問題。
- Web 部署簡介。
- 安裝和設定 Web 部署。
- 用於自動化 Web 部署設定的 PowerShell 指令碼。
- 網路部署工具。 TechNet 網站上 Web 部署文件的頂層目錄節點。 包含有用的參考資訊,但大多數 TechNet 頁面已多年未更新。
- Microsoft.Web.Deployment 命名空間。 API文件,自1.0版本以來一直沒有更新。
- Microsoft Web 部署團隊部落格。
- IIS.net 網站中的「發佈」標籤。