将 C# ASP.NET Web 应用部署到 Azure Stack Hub 中的 VM

可以创建一个虚拟机 (VM) 来托管 Azure Stack Hub 中的 C# ASP.NET Web 应用。 本文介绍如何设置服务器、将服务器配置为托管 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 部署。 需要在开发计算机中为 Web 服务器以及 Web 部署打开端口。 安装 .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 部署 v3.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 自定义 Web 部署使用的端口。

    对于每个端口:

    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. 在“解决方案资源管理器” 中,右键单击项目,并选择“发布” 。

    Deploy an ASP.NET web app to Azure Stack Hub publish

  2. 在“发布”窗口中选择“新建”。

  3. 选择“Web 服务器(IIS)”。

  4. 选择“下一步”>“Web 部署”>“下一步” 。

  5. 对于“服务器”,请输入前面定义的 DNS 名称,例如 mywebapp.region.cloudapp.azurestack.corp.contoso.com

  6. 对于“站点名称”,请输入 Default Web Site 或在目标服务器上的 IIS 中使用的名称。

  7. 对于“用户名”,请输入计算机的用户名。

  8. 对于“密码”,请输入计算机的密码。

  9. 对于“目标 URL”,请输入站点的 URL,例如 mywebapp.local.cloudapp.azurestack.externalhttp://mywebapp.region.cloudapp.azurestack.corp.contoso.com

    Deploy an ASP.NET web app - configure Web Deploy

  10. 若要验证 Web 部署配置,请选择“验证连接”,然后选择“下一步”。

  11. 将“配置”设置为“发布”。

  12. 将“目标框架”设置为“net5.0” 。

  13. 将“部署模式”设置为“Framework-Dependent” 。

  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
    

后续步骤