共用方式為


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

    • 若要設定 ASP.NET Core,請參閱在 Windows 上使用 IIS 託管 ASP.NET Core 的頁面 。 針對 ASP.NET Core,請確定您將應用程式集區設定為使用 No Managed Code,如本文所述。

    • 若要設定 ASP.NET 4.5,請參閱 IIS 8.0 使用 ASP.NET 3.5 和 ASP.NET 4.5

    注意

    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 中啟動應用程式,以測試它是否已正確部署。