從 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 中測試。

    注意

    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 來建立發佈設定檔案。

  1. 如果您尚未安裝 IIS 管理指令碼及工具,請立即安裝。

    移至 [選取伺服器角色]>[網頁伺服器 (IIS)]>[管理工具],然後選取 [IIS 管理指令碼及工具] 角色並按一下 [下一步],再安裝該角色。

    Install IIS Management Scripts and Tools

    您需要這些指令碼及工具,才能產生發行設定檔。

    確定您也安裝 [管理服務] 和 [IIS 管理主況台] (可能已經安裝)。

  2. 在 Windows Server 上,下載 Web Deploy 4.0

  3. 執行 Web Deploy 安裝程式,並確定您選取 [完整] 安裝,而不是一般安裝。

    透過完整安裝,您會取得產生發佈設定檔案所需的元件。 (如果您改為選擇 [自訂],則可看到元件清單,如下圖所示。)

    Screenshot showing Web Deploy 4.0 components

  4. (選用) 驗證 Web Deploy 是否正確執行,方法為開啟 [控制台] > [系統及安全性] > [系統管理工具] > [服務],然後確定:

    • Microsoft Deployment Agent 服務 正在執行 (舊版的服務名稱不同)。

    • Web 管理服務正在執行。

    如果其中一個代理程式服務不在執行中,請重新啟動 Web Deployment Agent​ 服務

    如果完全沒有 Web Deployment Agent​ 服務,請移至 [控制台] > [程式集] > [解除安裝程式],尋找 Microsoft Web Deploy <版本>。 選擇 [變更] 安裝,並確定您針對 Web Deploy 元件選擇 [將會安裝至本機硬碟]。 完成變更安裝步驟。

在 Windows Server 上的 IIS 中建立發行設定檔案

  1. 關閉並重新開啟 IIS 管理主控台,以在 UI 中顯示更新的組態選項。

  2. 在 IIS 中,以滑鼠右鍵按一下 [預設的網站],然後選擇 [部署]>[設定 Web Deploy 發行]

    Configure Web Deploy configuration

    如果沒有看到 [部署] 功能表,請參閱上一節以確認 Web Deploy 正在執行。

  3. 查看 [設定 Web Deploy 發行] 對話方塊中的設定。

  4. 按一下 [設定]

    在 [結果] 面板中,輸出顯示會將存取權限授與指定的使用者,並已在對話方塊顯示的位置中產生副檔名為 .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。 如需詳細資訊,請參閱開啟虛擬機器的連接埠

  5. 將此檔案複製到您執行 Visual Studio 的電腦。

在 Visual Studio 中匯入發行設定並進行部署

  1. 在您已於 Visual Studio 中開啟 ASP.NET 專案的電腦上,以滑鼠右鍵按一下 [方案總管] 中的專案,然後選擇 [發行]

    如果您之前已設定任何發行設定檔,[發行] 窗格會隨即出現。 按一下 [新增] 或 [建立新的設定檔]

  2. 選取匯入設定檔的選項。

    在 [發佈] 對話方塊中,按一下 [匯入設定檔]

    Choose Publish

  3. 巡覽至您在上一節中所建立發行設定檔的位置。

  4. 在 [匯入發佈設定檔案] 方塊中,瀏覽至您在上一節中建立的設定檔並加以選取,然後按一下 [開啟]

    按一下 [完成] 以儲存發行設定檔,然後按一下 [發佈]

    Visual Studio 隨即開始部署程序,而 [輸出] 視窗會顯示進度和結果。

    如果您收到任何部署錯誤,請按一下 [更多動作]>[編輯] 來編輯設定。 修改設定,並按一下 [驗證] 來測試新的設定。 如果找不到主機名稱,請嘗試使用 IP 位址,而不是 [伺服器] 和 [目的地 URL] 欄位中的主機名稱。

    Edit settings in the Publish tool

應用程式部署成功之後,它應該會自動啟動。

常見問題

首先,檢查 Visual Studio 的 [輸出] 視窗以取得狀態資訊,然後檢查您的錯誤訊息。 此外:

  • 如果您無法使用主機名稱連線到主機,請改為嘗試 IP 位址。
  • 確定遠端伺服器上已開啟必要的連接埠。
  • 針對 ASP.NET Core,您必須在 IIS 中先確定DefaultAppPool 的 [應用程式集區] 欄位設定為 [沒有受控程式碼]
  • 確認您應用程式中使用的 ASP.NET 版本與您在伺服器上安裝的版本相同。 針對您的應用程式,您可以在 [屬性] 頁面中檢視和設定版本。 若要將應用程式設定為不同的版本,則必須安裝該版本。
  • 如果應用程式嘗已試開啟,但您看到憑證警告,請選擇信任網站。 如果您已經關閉警告,則可在專案中編輯 *.pubxml 檔案並新增下列元素:<AllowUntrustedCertificate>true</AllowUntrustedCertificate>。 此設定僅用於測試!
  • 如果應用程式未從 Visual Studio 啟動,請在 IIS 中啟動應用程式以測試其是否部署正確。