將 C# ASP.NET Web 應用程式部署至 Azure Stack Hub 中的 VM

您可以在 Azure Stack Hub 中建立用來裝載 C# ASP.NET Web 應用程式的虛擬機器 (VM)。 本文會示範如何設定伺服器、配置伺服器以裝載 C# ASP.NET Web 應用程式,然後直接從 Visual Studio 部署應用程式。

本文內容與如何使用 Azure Stack Hub 有關。 您可以使用 Azure Stack Hub 在資料中心內執行 Azure。 如果您要尋找全域 Azure 的指引,請參閱使用 Visual Studio 將 ASP.NET Core 應用程式發佈至 Azure

必要條件

建立 VM

建立 VM,然後安裝為了裝載 .NET Web 應用程式所需要的元件。 您需要 VM 上的 IIS 管理控制台、Web 管理服務、.NET 運行時間和 Microsoft Web Deploy。 您必須從開發電腦開啟 Web 伺服器和 Web Deploy 的埠。 在安裝 .NET 執行階段時,請務必在目標伺服器和開發機器上使用相同版本的 .NET。

  1. 建立 Windows Server VM

  2. 若要在 VM 上安裝 IIS (含管理主控台) 和 .NET 5.0 元件,請在 PowerShell 5.x 主控台中執行下列指令碼:

    # Install IIS (with Management Console)
    Install-WindowsFeature -name Web-Server -IncludeManagementTools
    
    # Install Web Management Service
    Install-WindowsFeature -Name Web-Mgmt-Service
    
  3. 在 VM 上下載 .NET 5.0

  4. 下載 Web Deploy 3.6 版。 從 MSI 檔案加以安裝,然後啟用所有功能。

  5. 在 Azure Stack Hub 入口網站中,開啟您 VM 的網路設定中所列的連接埠。

    a. 開啟租用戶的 Azure Stack Hub 入口網站。

    b. 搜尋您的 VM。 您可能已將 VM 釘選到儀表板,或者可以在 [搜尋資源] 方塊中搜尋該 VM。

    c. 選取 [網路功能]。

    d. 選取 VM 下方的 [新增輸入連接埠規則]。

    e. 為下列連接埠新增輸入安全性規則:

    連接埠 通訊協定 描述
    80 HTTP 超文字傳輸通訊協定 (HTTP) 是用於從伺服器提供網頁的通訊協定。 用戶端會使用 DNS 名稱或 IP 位址透過 HTTP 連線。
    443 HTTPS 超文字傳輸通訊協定安全 (HTTPS) 是安全的 HTTP 版本,其需要安全性憑證並允許加密的資訊傳輸。
    22 SSH 安全殼層 (SSH) 是安全通訊的加密網路通訊協定。 您將使用此連線與 SSH 用戶端來設定 VM 並部署應用程式。
    3389 RDP 選擇性。 遠端桌面通訊協定可讓遠端桌面連線使用您機器的圖形化使用者介面。
    8172 Custom Web Deploy 使用的連接埠。

    對於每個連接埠:

    a. 針對 [來源],選取 [任何]。

    b. 針對 [來源連接埠範圍],輸入星號 (*)。

    c. 針對 [目的地],選取 [任何]。

    d. 針對 [目的地連接埠範圍],新增您要開啟的連接埠。

    e. 在 [通訊協定] 中,選取 [任何]。

    f. 在 [動作] 中,選取 [允許]。

    g. 針對 [優先順序],保留預設選取項目。

    h. 輸入 [名稱] 和 [描述],幫助您記得為何連接埠已開啟。

    i. 選取 [新增]。

  6. 針對您位於 Azure Stack Hub 中的 VM,在 [概觀] 設定中建立伺服器的 DNS 名稱。 使用者可使用 URL 連線至您的網站。

    a. 開啟租用戶的 Azure Stack Hub 入口網站。

    b. 搜尋您的 VM。 您可能已將 VM 釘選到儀表板,或者可以在 [搜尋資源] 方塊中搜尋該 VM。

    c. 選取 [概觀]。

    d. 在 [DNS] 底下,選取 [設定]。

    e. 針對 [指派] 選取 [動態]。

    f. 輸入 DNS 名稱標籤 (例如 mywebapp),讓完整 URL 變成類似 mywebapp.region.cloudapp.azurestack.corp.contoso.com 的內容。

建立應用程式

您可以使用 Visual Studio 中的預設 .NET 應用程式,也可以使用您自己的 Web 應用程式,使用 Visual Studio 將 ASP.NET Core 應用程式發佈至 Azure 中會有範例。 本文說明如何使用 Visual Studio 2019 中的 Azure 虛擬機器發佈功能建立 ASP.NET Web 應用程式,並將其發佈至 Azure 虛擬機器。 在您安裝應用程式並確定它在本機執行後,您會將發佈目標更新為 Azure Stack Hub 執行個體中的 Windows VM。

部署並執行應用程式

在 Azure Stack Hub 中,從開發機器建立目的地為 VM 的發佈目標。

  1. 在 [方案總管] 中,以滑鼠右鍵按一下您的專案,然後選取 [發佈]。

    將 ASP.NET Web 應用程式部署至 Azure Stack Hub 發佈

  2. 在 [發佈] 視窗中,選取 [新增]。

  3. 選取 [Web 伺服器 (IIS)]。

  4. 選取 [下一步]>[Web Deploy]>[下一步]。

  5. 針對 [伺服器],輸入您先前定義的 DNS 名稱,例如 mywebapp.region.cloudapp.azurestack.corp.contoso.com

  6. 針對 [網站名稱],輸入 Default Web Site 或目標伺服器上的 IIS 所使用的名稱。

  7. 針對 [使用者名稱],輸入機器的使用者名稱。

  8. 針對 [密碼],輸入機器的密碼。

  9. 針對 [目的地 URL],輸入網站的 URL,例如 http://mywebapp.region.cloudapp.azurestack.corp.contoso.com

    部署 ASP.NET Web 應用程式 - 設定 Web Deploy

  10. 若要驗證您的 Web 部署組態,請選取 [驗證連線],然後選取 [下一步]。

  11. 將 [組態] 設定為 [版本]。

  12. 將 [目標 Framework] 設定為 [net5.0]。

  13. 將 [部署模式] 設定為 [與 Framework 相依]。

  14. 將 [目標執行階段] 設定為 [win-x64]。

  15. 選取 [儲存]。

  16. 選取 [發佈] 。 您應該就會在 Visual Studio 的主控台中看到下列輸出:

    Publish Succeeded.
    Web App was published successfully http://mywebapp.region.cloudapp.azurestack.corp.contoso.com/
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
    ========== Publish: 1 succeeded, 0 failed, 0 skipped ==========
    
  17. 前往您的新伺服器。 您應該會看到執行中的 Web 應用程式。

    mywebapp.region.cloudapp.azurestack.corp.contoso.com