從 IIS 取得發佈設定並匯入 Visual Studio 中
您可以使用 [發行] 工具匯入發行設定,然後部署您的應用程式。 在本文中,我們使用 IIS 的發佈設定。
這些步驟適用於 ASP.NET 和 ASP.NET Core Web 應用程式。
注意
發佈設定檔案 (*.publishsettings) 不同於發行設定檔 (*.pubxml)。 發行設定檔案是在 IIS 中建立的並可匯入 Visual Studio。 Visual Studio 會建立發行設定檔。
必要條件
隨著 ASP.NET 與 Web 開發工作負載安裝的 Visual Studio。 如果您已經安裝 Visual Studio:
- 選取 [說明]>[檢查更新],在 Visual Studio 中安裝最新的更新。
- 選取 [工具]>[取得工具和功能] 以新增工作負載。
在您的伺服器上,您必須執行 Windows Server 2012 或更新版本,且必須正確安裝 IIS 網頁伺服器角色 (產生發行設定檔案 (*.publishsettings) 時需要此角色)。 另外還必須在伺服器上安裝 ASP.NET 4.5 或 ASP.NET Core。 本教學課程中的步驟已在 Windows Server 2022 中測試。
若要設定 ASP.NET Core,請參閱在使用 IIS 的 Windows 上裝載 ASP.NET Core。 針對 ASP.NET Core,確定將應用程式集區設定為使用 [沒有受控程式碼],如本文所述。
若要設定 ASP.NET 4.5,請參閱使用 ASP.NET 3.5 和 ASP.NET 4.5 的 IIS 8.0。
注意
Windows 上的 IIS 不支援產生發行設定。 不過,您仍然可以使用 Visual Studio 中的 [發佈] 工具來發佈至 IIS。
在 Windows Server 上安裝並設定 Web Deploy
Web Deploy 提供其他設定功能,可讓您從 UI 建立發佈設定檔案。
注意
Web Platform Installer 於 7/1/22 終結了生命週期。 如需詳細資訊,請參閱 Web Platform Installer - 終止支援和終結產品/應用程式摘要。 您可以直接安裝 Web Deploy 4.0 來建立發佈設定檔案。
如果您尚未安裝 IIS 管理指令碼及工具,請立即安裝。
移至 [選取伺服器角色]>[網頁伺服器 (IIS)]>[管理工具],然後選取 [IIS 管理指令碼及工具] 角色並按一下 [下一步],再安裝該角色。
您需要這些指令碼及工具,才能產生發行設定檔。
確定您也安裝 [管理服務] 和 [IIS 管理主況台] (可能已經安裝)。
在 Windows Server 上,下載 Web Deploy 4.0。
執行 Web Deploy 安裝程式,並確定您選取 [完整] 安裝,而不是一般安裝。
透過完整安裝,您會取得產生發佈設定檔案所需的元件。 (如果您改為選擇 [自訂],則可看到元件清單,如下圖所示。)
(選用) 驗證 Web Deploy 是否正確執行,方法為開啟 [控制台] > [系統及安全性] > [系統管理工具] > [服務],然後確定:
Microsoft Deployment Agent 服務 正在執行 (舊版的服務名稱不同)。
Web 管理服務正在執行。
如果其中一個代理程式服務不在執行中,請重新啟動 Web Deployment Agent 服務。
如果完全沒有 Web Deployment Agent 服務,請移至 [控制台] > [程式集] > [解除安裝程式],尋找 Microsoft Web Deploy <版本>。 選擇 [變更] 安裝,並確定您針對 Web Deploy 元件選擇 [將會安裝至本機硬碟]。 完成變更安裝步驟。
在 Windows Server 上的 IIS 中建立發行設定檔案
關閉並重新開啟 IIS 管理主控台,以在 UI 中顯示更新的組態選項。
在 IIS 中,以滑鼠右鍵按一下 [預設的網站],然後選擇 [部署]>[設定 Web Deploy 發行]。
如果沒有看到 [部署] 功能表,請參閱上一節以確認 Web Deploy 正在執行。
查看 [設定 Web Deploy 發行] 對話方塊中的設定。
按一下 [設定]。
在 [結果] 面板中,輸出顯示會將存取權限授與指定的使用者,並已在對話方塊顯示的位置中產生副檔名為 .publishsettings 的檔案。
<?xml version="1.0" encoding="utf-8"?> <publishData> <publishProfile publishUrl="https://myhostname:8172/msdeploy.axd" msdeploySite="Default Web Site" destinationAppUrl="http://myhostname:80/" mySQLDBConnectionString="" SQLServerDBConnectionString="" profileName="Default Settings" publishMethod="MSDeploy" userName="myhostname\myusername" /> </publishData>
根據您的 Windows Server 和 IIS 組態,您會在 XML 檔案中看到不同的值。 以下是您會看到有關這些值的一些詳細資料:
publishUrl
屬性中所參考的 msdeploy.axd 檔案是針對 Web Deploy 動態產生的 HTTP 處理常式檔案 (基於測試目的,http://myhostname:8172
通常也適用)。publishUrl
連接埠設定為連接埠 8172,這是 Web Deploy 的預設值。destinationAppUrl
連接埠設定為連接埠 80,這是 IIS 的預設值。如果在稍後的步驟中,您無法使用主機名稱連線到 Visual Studio 中的遠端主機,請測試伺服器的 IP 位址以取代主機名稱。
注意
如果您要發行至 Azure VM 上執行的 IIS,您必須開啟 Web Deploy 的輸入連接埠及網路安全性群組中的 IIS。 如需詳細資訊,請參閱開啟虛擬機器的連接埠。
將此檔案複製到您執行 Visual Studio 的電腦。
在 Visual Studio 中匯入發行設定並進行部署
在您已於 Visual Studio 中開啟 ASP.NET 專案的電腦上,以滑鼠右鍵按一下 [方案總管] 中的專案,然後選擇 [發行]。
如果您之前已設定任何發行設定檔,[發行] 窗格會隨即出現。 按一下 [新增] 或 [建立新的設定檔]。
選取匯入設定檔的選項。
在 [發佈] 對話方塊中,按一下 [匯入設定檔]。
巡覽至您在上一節中所建立發行設定檔的位置。
在 [匯入發佈設定檔案] 方塊中,瀏覽至您在上一節中建立的設定檔並加以選取,然後按一下 [開啟]。
按一下 [完成] 以儲存發行設定檔,然後按一下 [發佈]。
Visual Studio 隨即開始部署程序,而 [輸出] 視窗會顯示進度和結果。
如果您收到任何部署錯誤,請按一下 [更多動作]>[編輯] 來編輯設定。 修改設定,並按一下 [驗證] 來測試新的設定。 如果找不到主機名稱,請嘗試使用 IP 位址,而不是 [伺服器] 和 [目的地 URL] 欄位中的主機名稱。
應用程式部署成功之後,它應該會自動啟動。
常見問題
首先,檢查 Visual Studio 的 [輸出] 視窗以取得狀態資訊,然後檢查您的錯誤訊息。 此外:
- 如果您無法使用主機名稱連線到主機,請改為嘗試 IP 位址。
- 確定遠端伺服器上已開啟必要的連接埠。
- 針對 ASP.NET Core,您必須在 IIS 中先確定DefaultAppPool 的 [應用程式集區] 欄位設定為 [沒有受控程式碼]。
- 確認您應用程式中使用的 ASP.NET 版本與您在伺服器上安裝的版本相同。 針對您的應用程式,您可以在 [屬性] 頁面中檢視和設定版本。 若要將應用程式設定為不同的版本,則必須安裝該版本。
- 如果應用程式嘗已試開啟,但您看到憑證警告,請選擇信任網站。 如果您已經關閉警告,則可在專案中編輯 *.pubxml 檔案並新增下列元素:
<AllowUntrustedCertificate>true</AllowUntrustedCertificate>
。 此設定僅用於測試! - 如果應用程式未從 Visual Studio 啟動,請在 IIS 中啟動應用程式以測試其是否部署正確。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應