共用方式為


從 IIS 取得發佈設定並匯入 Visual Studio

您可以使用 Publish 工具來匯入發佈設定,然後部署您的應用程式。 在本文中,我們會使用 IIS 的發佈設定。

這些步驟適用於 ASP.NET 和 ASP.NET Core Web 應用程式。

注意

發行設定檔(*.publishsettings)與發行設定檔案(*.pubxml)不同。 發行配置檔是在 IIS 中建立,然後可以匯入 Visual Studio。 Visual Studio 會建立發行設定檔。

先決條件

  • Visual Studio 隨 ASP.NET 和 Web 開發工作負載一起安裝。 如果您已安裝 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 管理腳本和工具 角色],按兩下 [[下一步]],然後安裝角色。

    安裝 IIS 管理文本和工具

    需要腳本和工具,才能產生發佈設定檔。

    請確定您也安裝 Management ServiceIIS 管理主控台 (可能已安裝它們)。

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

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

    完成安裝時,您會取得產生發行配置檔所需的元件。 (如果您改為選擇 自定義,您可以看到元件清單,如下圖所示。

    顯示 Web Deploy 4.0 元件 的螢幕快照

  4. (選擇性)開啟 控制台 > 系統與安全性 > 管理工具 > 服務,確認 Web Deploy 已正確執行,然後確定:

    • Web 部署代理程式服務 正在執行(舊版的服務名稱不同)。

    • Web Management Service 正在執行。

    如果其中一個代理程式服務未執行,請重新啟動 Web 部署代理程式服務

    如果 Web 部署代理程式服務完全不存在,請移至 [控制面板] > [程式] > [卸載程式],尋找 Microsoft Web Deploy <版本>。 選擇 [變更] 安裝程序,並確保您選擇的 Web Deploy 元件 將會安裝至本機硬碟。 完成變更安裝步驟。

在 Windows Server 上的 IIS 中建立發行配置檔

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

  2. 在 IIS 中,以滑鼠右鍵點選 預設網站,選擇 部署>設定 Web Deploy 發佈

    設定 Web Deploy 組態

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

  3. 在 [設定 Web Deploy Publishing] 對話框中,檢查設定。

  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/"
        profileName="Default Settings"
        publishMethod="MSDeploy"
        userName="myhostname\myusername" />
    </publishData>
    

    視您的 Windows Server 和 IIS 組態而定,您會在 XML 檔案中看到不同的值。 您看到的數據值的詳細資訊如下:

    • msdeploy.axdpublishUrl 屬性中所參考的檔案是 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. 選取匯入配置檔的選項。

    發佈 對話框中,按一下 匯入設定檔

    選擇發佈

  3. 流覽至您在上一節中建立之發行配置檔的位置。

  4. 在 [匯入發行設定檔] 對話框中,瀏覽到您在上一節中建立的設定檔,然後按一下 [開啟]。

    請按一下 [完成] 以儲存發佈配置檔,然後按一下 [發佈]。

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

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

    [發佈工具] 中的 [編輯設定]

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

常見問題

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

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