在本文中,您將瞭解如何將第一個 ASP.NET Web 應用程式發佈至各種位置,包括 IIS 等本機 Web 伺服器,以及 Azure App Service 等遠端雲端環境。
本文支援 ASP.NET 和 ASP.NET Core。
備註
本文涵蓋手動部署,非常適合快速啟動並執行某些專案,但針對較大的專案和生產案例,您可能想要設定部署管線。 您可以使用 GitHub Actions 或 Azure DevOps Pipelines 來設定自動部署,並針對這類案例進行持續整合。
先決條件
您需要隨 ASP.NET 和 Web 開發工作負載一起安裝 Visual Studio 。
如果您已安裝 Visual Studio:
- 選取 [說明]>[檢查更新],在 Visual Studio 中安裝最新的更新。
- 選取 [工具]>[取得工具和功能] 以新增工作負載。
開始吧
在 [方案總管] 中,以滑鼠右鍵按兩下您的項目,然後選擇 [ 發佈]。
如果您是第一次發佈此 Web 應用程式,接下來您會看到 [發佈精靈]。
備註
Visual Studio 會根據 Web 應用程式類型來篩選目的地清單。
Azure雲服務
如需發佈 Web 應用程式的詳細步驟,請參閱 快速入門:部署 ASP.NET Web 應用程式。
容器註冊表
本節說明發佈至容器註冊庫。 您可以將 Web 應用程式發佈為 Docker 容器至任何相容的 Docker Container Registry。
單擊 [下一步] ,然後從可用的選項中選擇,例如 Azure Container Registry 或 Docker Hub。
Azure 容器登錄資料庫 (Azure Container Registry)
接下來,針對 Azure Container Registry,選取現有的實例或建立新的實例。
Docker Hub (英文)
接下來,針對 Docker Hub,提供發佈憑證。
其他 Docker 容器註冊表
接下來,針對其他 Docker 容器登錄,提供 URI 併發佈認證。
發佈容器映像
接下來,您會看到您剛才使用 [發佈精靈] 所建立之新 發行配置檔 的摘要頁面。 按兩下 [發佈 ] ,Visual Studio 將 Web 應用程式部署至指定的 Docker Container Registry。
備註
上述螢幕快照顯示以 Azure Docker Registry 為目標的發佈配置檔,但三個 Docker Container Registry 選項都可使用相同的 [發佈] 按鈕。
檔案系統資料夾
您可以將 Web 應用程式發佈至本機和網路資料夾。
首先,提供路徑,然後按兩下 [ 完成 ] 以完成 [發佈精靈]。
接下來,您會看到您剛才使用 [發佈精靈] 所建立之新 發行配置檔 的摘要頁面。 按一下 發佈,Visual Studio 會將網頁應用程式部署到提供的路徑。
關閉此摘要頁面之後,您可以返回此摘要頁面。 下次以滑鼠右鍵按兩下並選擇 [ 發佈] 時,Visual Studio 會開啟此摘要頁面。 (若要回到 [發佈精靈],只要按兩下摘要頁面中的 [ 新增 ]。
FTP/FTPS 伺服器
您可以使用 FTP 或 FTPS 發佈 Web 應用程式。
提供必要的連線詳細數據,然後選擇 [ 完成]。
接下來,您會看到您剛才使用 [發佈精靈] 所建立之新 發行配置檔 的摘要頁面。 按一下 發佈,然後 Visual Studio 將您的 Web 應用程式部署到所提供的 FTP 或 FTPS 伺服器。
關閉此摘要頁面之後,您可以返回此摘要頁面。 下次以滑鼠右鍵按兩下併發佈時,Visual Studio 會開啟此摘要頁面。 (若要回到 [發佈精靈],只要按兩下摘要頁面中的 [ 新增 ]。
網頁伺服器 (IIS)
如果已設定 IIS,您可以將 Web 應用程式發布至 IIS。 根據預設,會安裝 IIS Express,但如果您要從 Visual Studio 部署至 IIS,您應該安裝 IIS 管理工具。 請注意,您不需要以系統管理員身分執行 Visual Studio 來部署至 IIS Express,而只需要執行到完整的 IIS。
設定 web 伺服器
在遠端 Web 伺服器上,安裝 Web 管理服務。 請務必遵循該處的指示來啟用遠端連線,並確定服務已啟動、設定認證以遠端管理 Web 伺服器,並在嘗試部署之前先加以驗證。 本機 IIS 部署不需要 Web 管理服務。
在網頁伺服器上,安裝 IIS 6 Metabase 相容性。 在 [Windows 設定] 的 [ 程式和功能] 下,選擇 [ 開啟或關閉 Windows 功能]。 然後在 [Internet Information Services>Web 管理工具] 底下,安裝 IIS 6 管理兼容性。 請確定已選取 IIS Metabase 和 IIS 6 組態相容性 。
若要為 ASP.NET Core 應用程式設定 IIS,請安裝 .NET Core 裝載套件組合安裝程式(直接下載)。 如需詳細資訊,請參閱 .NET Core 裝載套件組合。
如果您使用的是 ASP.NET 4.8 或更早版本,或需要在 Windows Server 上設定 IIS 以進行發佈,您可以在 IIS 電腦上的遠端 偵錯 ASP.NET,以及 IIS 計算機上的 ASP.NET Core、遠端偵錯 ASP.NET Core 中找到詳細步驟。
警告
網頁伺服器必須考慮到安全性最佳做法。 如需建議的安全性做法,請參閱 IIS 檔 。 針對 IIS 8,請參閱 IIS 8 的安全性最佳做法。
發佈至 IIS 網頁伺服器
選擇 [發佈],然後選擇 [Web 伺服器] [IIS]。
挑選所需的部署模式。 選擇 [Web Deploy] 以立即將應用程式部署到指定的伺服器。 選擇 [Web 部署套件] 以建立包含部署成品的已封裝 ZIP 檔案,以供您或其他人稍後使用。
Web 部署
提供必要的連線詳細數據,然後選擇 [ 完成]。 下列螢幕截圖顯示一個 Web 應用程式已發佈至安裝在本機開發機器上的預設 IIS 網站(預設網站),並在埠 5187 上進行埠綁定。 目的地 URL 是選擇性的。 如果未提供,則不會在發佈時自動啟動網站,而且 [ 發佈 ] 畫面上不會有連結可存取已發佈的網站。
第一次發佈時,請建立使用者名稱和密碼。 這些認證專屬於 WebDeploy 部署。 建立它們之後,您無法在 Visual Studio 中變更它們,但您可以在 IIS 中重設它們。 請參閱 網站 - 設定憑證 對話框。 如果您沒有密碼,您可以下載 .publishsettings 檔案,並從該處讀取它。 請參閱 從 IIS 匯入發佈設定。
警告
使用使用者名稱和密碼認證(基本身份驗證)不是最安全的驗證方法。 盡可能使用替代方法。 例如,請考慮從 Visual Studio 發佈至套件,然後使用命令行 WebDeploy.exe 來部署套件。 使用該方法,您可以使用 IIS 管理員來設定可發佈至網頁伺服器的授權 Windows 使用者,並在該 Windows 使用者帳戶下執行 WebDeploy.exe。 請參閱 在 IIS 8.0 或更新版本上安裝及設定 Web Deploy。 如果您使用密碼認證,請務必使用強密碼,並保護密碼免於外泄或共用。
如需疑難解答,請參閱 Web Deploy 錯誤碼。
Web Deploy 套件
按兩下 [瀏覽... ] 開啟 [選取封裝位置] 對話框,然後輸入您要建立封裝的路徑,包括 .zip 檔名。
完成發佈精靈
接下來,您會看到您剛才使用 [發佈精靈] 所建立之新 發行配置檔 的摘要頁面。 按兩下 [發佈 ] ,Visual Studio 將 Web 應用程式部署至指定的 IIS 伺服器。
匯入發行設定檔案
您可以從 IIS 和 Azure App Service 匯入發佈設定
後續步驟
管理 Web 應用程式部署的設定。 藉由管理設定,您可以控制 .NET 部署選項,以及在部署目的地如何處理不屬於這次部署過程的現有檔案。 請參閱 管理 Web 部署設定。