快速入门:部署 ASP.NET Web 应用

本快速入门介绍如何创建你的第一个 ASP.NET Web 应用并将其部署到 Azure 应用服务。 应用服务支持各种版本的 .NET 应用,并提供高度可缩放、自修补的 Web 托管服务。 ASP.NET Web 应用具有跨平台特性,可以在 Linux 或 Windows 上托管。 完成后,你会获得一个 Azure 资源组,其中包含一个应用服务托管计划,以及一个部署了 Web 应用程序的应用服务。

或者,可以将 ASP.NET Web 应用部署为应用服务中的 Windows 或 Linux 容器的一部分。

先决条件

如果你已安装 Visual Studio 2022:

  1. 通过选择“帮助”>“检查更新”,在 Visual Studio 中安装最新更新。
  2. 通过选择“工具”>“获取工具和功能”,添加工作负荷。

1. 创建 ASP.NET Web 应用

  1. 打开 Visual Studio,然后选择“创建新项目”。

  2. 在“创建新项目”中,找到并选择“ASP.NET Core Web 应用”,然后选择“下一步”。

  3. 在“配置新项目”中,将应用程序命名为“MyFirstAzureWebApp”,然后选择“下一步”。

    Visual Studio 的屏幕截图 - 配置 ASP.NET 7.0 Web 应用。

  4. 选择“.NET 7.0(标准期限支持)”。

  5. 确保“身份验证类型”设置为“无身份验证”。 选择“创建”。

    Visual Studio 的屏幕截图 - 选择 .NET 7.0 时的其他信息。

  6. 在 Visual Studio 菜单中,选择“调试”>“开始执行(不调试)”以在本地运行 Web 应用。 如果看到要求你信任自签名证书的消息,请选择“”。

    Visual Studio 的屏幕截图 - ASP.NET Core 7.0 在本地运行。

  1. 在计算机上打开终端窗口,进入工作目录。 使用 dotnet new webapp 命令创建新的 .NET Web 应用,然后将目录更改为新创建的应用。

    dotnet new webapp -n MyFirstAzureWebApp --framework net7.0
    cd MyFirstAzureWebApp
    
  2. 在同一终端会话中,使用 dotnet run 命令本地运行该应用程序。

    dotnet run --urls=https://localhost:5001/
    
  3. 打开 Web 浏览器并导航到 https://localhost:5001 处的应用。

    你会看到页面中显示的模板 ASP.NET Core 7.0 Web 应用。

    Visual Studio Code 的屏幕截图 - 本地浏览器中的 ASP.NET Core 7.0。

在此步骤中,你要创建演示项目的分支以进行部署。

  1. 转到 .NET 7.0 示例应用
  2. 选择 GitHub 页面右上角的“创建分支”按钮。
  3. 选择“所有者”并保留默认存储库名称。
  4. 选择“创建分支”。

2. 发布 Web 应用

若要发布 Web 应用,必须先创建并配置一个新的应用服务,用于将应用发布到该服务。

在设置应用服务的过程中,你要创建:

  • 一个新的资源组,用于包含该服务的所有 Azure 资源。
  • 一个新的托管计划,用于指定托管应用的 Web 服务器场的位置、大小和功能。

遵循以下步骤创建应用服务资源并发布项目:

  1. 在“解决方案资源管理器”中右键单击“MyFirstAzureWebApp”项目,然后选择“发布”。

  2. 在“发布”中,选择“Azure”,然后单击“下一步”。

    Visual Studio 的屏幕截图 - 发布 Web 应用并以 Azure 为目标。

  3. 选择特定目标,即 Azure 应用服务 (Linux) 或 Azure 应用服务 (Windows)。 然后,选择“下一步”。

    重要

    面向 ASP.NET Framework 4.8 时,请使用 Azure 应用服务 (Windows)。

  4. 你的选项取决于你是否已登录 Azure 以及是否有一个链接到 Azure 帐户的 Visual Studio 帐户。 选择“添加帐户”或“登录”以登录 Azure 订阅。 如果你已经登录,请选择所需的帐户。

    Visual Studio 的屏幕截图 -“选择登录到 Azure”对话框。

  5. 在“应用服务实例”的右侧,选择 +

    Visual Studio 的屏幕截图 -“新建应用服务应用”对话框。

  6. 对于“订阅”,请接受列出的订阅,或从下拉列表中选择一个新订阅。

  7. 对于“资源组”,选择“新建”。 在“新资源组名称”中,输入“myResourceGroup”并选择“确定”。

  8. 对于“托管计划”,请选择“新建”。

  9. 在“托管计划:新建”对话框中,输入下表中指定的值:

    设置 建议的值 说明
    托管计划 MyFirstAzureWebAppPlan 应用服务计划的名称。
    位置 中国北部 2 托管 Web 应用的数据中心。
    大小 免费 定价层确定托管功能。
  10. 名称中,输入仅包含有效字符 a-zA-Z0-9- 的唯一应用名称。 可以接受自动生成的唯一名称。 Web 应用的 URL 为 http://<app-name>.chinacloudsites.cn,其中 <app-name> 是应用名称。

  11. 选择“创建”以创建 Azure 资源。

    Visual Studio 的屏幕截图 -“创建应用资源”对话框。

    向导完成后,会为你创建 Azure 资源,此时你做好发布 ASP.NET Core 项目的准备了。

  12. 在“发布”对话框中,确保选中你的新的应用服务应用,然后选择“完成”,再选择“关闭”。 Visual Studio 为所选应用服务应用创建发布配置文件。

  13. 在“发布”页中,选择“发布”。 如果看到警告消息时,请选择“继续”。

    Visual Studio 将生成、打包应用并将其发布到 Azure,然后在默认浏览器中启动该应用。

    你会看到页面中显示的 ASP.NET Core 7.0 Web 应用。

    Visual Studio 的屏幕截图 - Azure 中的 ASP.NET Core 7.0 Web 应用。

  1. 在 Visual Studio Code 中,选择“视图”>“命令面板”来打开命令面板

  2. 搜索并选择“Azure 应用服务:新建 Web 应用(高级)”。

  3. 响应提示,如下所述:

    1. 如果出现系统提示,请登录到你的 Azure 帐户。
    2. 选择订阅
    3. 选择“创建新 Web 应用…高级”。
    4. 对于“输入全局唯一名称”,请使用在所有 Azure 中都是唯一的名称(有效字符为 a-z0-9-)。 良好的模式是结合使用公司名称和应用标识符。
    5. 选择“创建新的资源组”并提供一个名称,例如 myResourceGroup
    6. 当系统提示“选择运行时堆栈”时,请选择“.NET 7 (STS)”。
    7. 选择操作系统(Windows 或 Linux)。
    8. 选择附近的位置。
    9. 选择“创建新的应用服务计划”,提供一个名称,然后选择“F1 免费”定价层
    10. 对于 Application Insights 资源,选择“暂时跳过”。
    11. 出现提示时,单击“部署”。
    12. 选择“MyFirstAzureWebApp”作为要部署的文件夹。
    13. 在出现提示时选择“添加配置”。
  4. 在“使用将工作区 "MyFirstAzureWebApp" 部署到 <app-name>”,选择“是”,以便每次在该工作区中时,Visual Studio Code 都会部署到相同的应用服务应用。

  5. 发布完成后,选择通知中的“浏览网站”,并在出现提示时选择“打开”。

    你会看到页面中显示的 ASP.NET Core 7.0 Web 应用。

    Visual Studio Code 的屏幕截图 - Azure 中的 ASP.NET Core 7.0 Web 应用。

  1. 使用 az login 命令并按照提示登录到 Azure 帐户:

    az login
    
    • 如果无法识别 az 命令,请确保已按照 必备条件 中所述安装了 Azure CLI。
  2. 使用 az webapp up 命令在本地 MyFirstAzureWebApp 目录中部署代码:

    az webapp up --sku F1 --name <app-name> --os-type <os>
    
    • <app-name> 替换为在整个 Azure 中均唯一的名称(有效字符为 a-z0-9-)。 良好的模式是结合使用公司名称和应用标识符。
    • --sku F1 参数在“免费”定价层上创建 Web 应用。 省略此参数可使用更快的高级层,这会按小时计费。
    • linuxwindows 替换 <os>
    • 可以选择包含参数 --location <location-name>,其中 <location-name> 是可用的 Azure 区域。 可以运行 az account list-locations 命令来检索 Azure 帐户的允许区域列表。

    该命令可能需要几分钟时间才能完成。 当该命令运行时,它会提供以下相关消息:创建资源组、应用服务计划和托管应用,配置日志记录,然后执行 ZIP 部署。 然后,它显示一条包含应用 URL 的消息:

    You can launch the app at http://<app-name>.chinacloudsites.cn
    
  3. 打开 Web 浏览器并导航到 URL:

    你会看到页面中显示的 ASP.NET Core 7.0 Web 应用。

    CLI 的屏幕截图 - Azure 中的 ASP.NET Core 7.0 Web 应用。

注意

建议使用 Azure PowerShell 在 Windows 托管平台上创建应用。 若要在 Linux 上创建应用,请使用其他工具,例如 Azure CLI

  1. 使用 Connect-AzAccount -Environment AzureChinaCloud 命令并按照提示登录到 Azure 帐户:

    Connect-AzAccount -Environment AzureChinaCloud
    
  1. 使用 New-AzWebApp 命令创建新的应用:

    New-AzWebApp -Name <app-name> -Location chinanorth2
    
    • <app-name> 替换为在整个 Azure 中均唯一的名称(有效字符为 a-z0-9-)。 结合使用公司名称和应用标识符是一种良好的模式。
    • 可选择包含参数 -Location <location-name>,其中 <location-name> 是可用的 Azure 区域。 可以运行 Get-AzLocation 命令来检索 Azure 帐户的允许区域列表。

    该命令可能需要几分钟时间才能完成。 当该命令运行时,它会创建资源组、应用服务计划和应用服务资源。

  2. 从应用程序根文件夹,使用 dotnet publish 命令准备本地 MyFirstAzureWebApp 应用程序进行部署:

    dotnet publish --configuration Release
    
  3. 更改为发布目录,并根据内容创建一个 zip 文件:

    cd bin\Release\net7.0\publish
    Compress-Archive -Path * -DestinationPath deploy.zip
    
  4. 使用 Publish-AzWebApp 命令将 zip 文件发布到 Azure 应用:

    Publish-AzWebApp -ResourceGroupName myResourceGroup -Name <app-name> -ArchivePath (Get-Item .\deploy.zip).FullName -Force
    

    注意

    -ArchivePath 需要 zip 文件的完整路径。

  5. 打开 Web 浏览器并导航到 URL:

    你会看到页面中显示的 ASP.NET Core 7.0 Web 应用。

    CLI 的屏幕截图 - Azure 中的 ASP.NET Core 7.0 Web 应用。

  1. 在搜索框中键入“应用服务”。 在“服务”下选择“应用程序服务” 。

    Azure 门户中门户搜索的屏幕截图。

  2. 在“应用服务”页面中,请选择“+ 创建”。

  3. 在“基本信息”选项卡中:

    • 在“资源组”下,选择“新建”。 对于名称,请键入 myResourceGroup
    • 在“名称”下,为 Web 应用键入全局唯一名称。
    • 在“发布”下,选择“代码”。
    • 在“运行时堆栈”下,选择“.NET 7 (STS)”。
    • 依次选择“操作系统”以及你希望在其中提供应用的“区域”。
    • 在“应用服务计划”下,选择“新建”,然后输入 myAppServicePlan 作为名称。
    • 在“定价计划”下,选择“免费 F1”。

    Azure 门户中 .NET 7 的新应用服务应用配置的屏幕截图。

  4. 选择页面底部的“下一步: 部署 >”按钮。

  5. 在“部署”选项卡中的“GitHub Actions 设置”下,确保已启用“持续部署”。

  6. 在“GitHub Actions 详细信息”下,使用 GitHub 帐户进行身份验证,然后选择以下选项:

    • 对于“组织”,选择在其中创建了演示项目分支的组织。
    • 对于“存储库”,选择 dotnetcore-docs-hello-world 项目。
    • 对于“分支”,请选择 master。

    使用 .NET 6 运行时的某个应用的部署选项的屏幕截图。

  7. 选择页面底部的“查看 + 创建”按钮。

  8. 运行验证之后,请选择页面底部的“创建”按钮。

  9. 在部署完成之后,选择“转到资源”。

    前往资源的下一步的屏幕截图。

  10. 在 Web 浏览器中使用以下 URL 浏览到已部署的应用程序:http://<app-name>.chinacloudsites.cn

3. 更新应用并重新部署

遵循以下步骤更新并重新部署 Web 应用:

  1. 在“解决方案资源管理器”中你的项目下,打开“Index.cshtml”。

  2. 将第一个 <div> 元素替换为以下代码:

    <div class="jumbotron">
        <h1>.NET 💜 Azure</h1>
        <p class="lead">Example .NET app to Azure App Service.</p>
    </div>
    

    保存更改。

  3. 若要重新部署到 Azure,请在“解决方案资源管理器”中右键单击“MyFirstAzureWebApp”项目,然后选择“发布”。

  4. 在“发布”摘要页中选择“发布” 。

    发布完成后,Visual Studio 将启动浏览器并转到 Web 应用的 URL。

    你会看到页面中显示的更新后的 ASP.NET Core 7.0 Web 应用。

    Visual Studio 的屏幕截图 - Azure 中更新后的 ASP.NET Core 7.0 Web 应用。

  1. 打开 index.cshtml

  2. 将第一个 <div> 元素替换为以下代码:

    <div class="jumbotron">
        <h1>.NET 💜 Azure</h1>
        <p class="lead">Example .NET app to Azure App Service.</p>
    </div>
    

    保存更改。

  3. 在 Visual Studio Code 中,打开“命令面板”,快捷键为 Ctrl+Shift+P

  4. 搜索并选择“Azure 应用服务:部署到 Web 应用”。

  5. 出现提示时,选择“部署”。

  6. 发布完成后,选择通知中的“浏览网站”,并在出现提示时选择“打开”。

    你会看到页面中显示的更新后的 ASP.NET Core 7.0 Web 应用。

    Visual Studio Code 的屏幕截图 - Azure 中更新后的 ASP.NET Core 7.0 Web 应用。

在本地目录中,打开 Index.cshtml 文件。 替换第一个 <div> 元素:

<div class="jumbotron">
    <h1>.NET 💜 Azure</h1>
    <p class="lead">Example .NET app to Azure App Service.</p>
</div>

保存更改,然后再次使用 az webapp up 命令重新部署应用:

ASP.NET Core 7.0 具有跨平台特性,基于你以前将 <os> 替换为 linuxwindows 的部署。

az webapp up --os-type <os>

此命令使用本地缓存在 .azure/config 文件中的值,包括应用名称、资源组和应用服务计划。

完成部署后,切换回在“浏览到应用” 步骤中打开的浏览器窗口,并点击“刷新”。

你会看到页面中显示的更新后的 ASP.NET Core 7.0 Web 应用。

CLI 的屏幕截图 - Azure 中更新后的 ASP.NET Core 7.0 Web 应用。

  1. 在本地目录中,打开 Index.cshtml 文件。 替换第一个 <div> 元素:

    <div class="jumbotron">
        <h1>.NET 💜 Azure</h1>
        <p class="lead">Example .NET app to Azure App Service.</p>
    </div>
    
  2. 从应用程序根文件夹,使用 dotnet publish 命令准备本地 MyFirstAzureWebApp 应用程序进行部署:

    dotnet publish --configuration Release
    
  3. 更改为发布目录,并根据内容创建一个 zip 文件:

    cd bin\Release\net7.0\publish
    Compress-Archive -Path * -DestinationPath deploy.zip
    
  4. 使用 Publish-AzWebApp 命令将 zip 文件发布到 Azure 应用:

    Publish-AzWebApp -ResourceGroupName myResourceGroup -Name <app-name> -ArchivePath (Get-Item .\deploy.zip).FullName -Force
    

    注意

    -ArchivePath 需要 zip 文件的完整路径。

  5. 完成部署后,切换回在“浏览到应用” 步骤中打开的浏览器窗口,并点击“刷新”。

    你会看到页面中显示的更新后的 ASP.NET Core 7.0 Web 应用。

    CLI 的屏幕截图 - Azure 中更新后的 ASP.NET Core 7.0 Web 应用。

  1. 浏览到示例代码的 GitHub 分支。

  2. 在存储库页面上,按 . 在浏览器中启动 Visual Studio Code。

    注意

    URL 将从 GitHub.com 更改为 GitHub.dev。 此功能仅适用于具有文件的存储库。 它不适用于空存储库。

  3. 打开 index.cshtml

    Index.cshtml 位于 Pages 文件夹中。

    浏览器中 Visual Studio Code 的资源管理器窗口的屏幕截图,突出显示了 dotnetcore-docs-hello-world 存储库中的 Index.cshtml。

  4. 将第一个 <div> 元素替换为以下代码:

    <div class="jumbotron">
        <h1>.NET 💜 Azure</h1>
        <p class="lead">Example .NET app to Azure App Service.</p>
    </div>
    

    保存更改。

  5. 从“源代码管理”菜单中,选择“暂存更改”按钮以暂存更改。

  6. 输入提交消息,如 We love Azure。 然后选择“提交和推送”。

  7. 完成部署后,返回到“浏览到应用”步骤期间打开的浏览器窗口,然后刷新页面。

    你会看到页面中显示的更新后的 ASP.NET Core 7.0 Web 应用。

    CLI 的屏幕截图 - Azure 中更新后的 ASP.NET Core 7.0 Web 应用。

4. 管理 Azure 应用

若要管理 Web 应用,请转到 Azure 门户,然后搜索并选择“应用服务”。

Azure 门户的屏幕截图 - 选择“应用服务”选项。

在“应用服务”页上,选择 Web 应用的名称。

Azure 门户的屏幕截图 - 已选择一个示例 Web 应用的“应用服务”页面。

Web 应用的“概述”页包含用于基本管理(例如浏览、停止、启动、重启和删除)的选项。 左侧菜单提供用于配置应用的更多页面。

Azure 门户的屏幕截图 -“应用服务概述”页面。

清理资源

在前面的步骤中,你在资源组中创建了 Azure 资源。 如果将来不再需要这些资源,可以通过删除资源组来删除它们。

  1. 在 Azure 门户的 Web 应用的“概述”页中,选择“资源组”下的 myResourceGroup 链接。
  2. 在资源组页上,确保列出的资源是要删除的。
  3. 选择“删除”,在文本框中键入“myResourceGroup”,然后选择“删除” 。

清理资源

在前面的步骤中,你在资源组中创建了 Azure 资源。 如果将来不再需要这些资源,可以通过删除资源组来删除它们。

  1. 在 Azure 门户的 Web 应用的“概述”页中,选择“资源组”下的 myResourceGroup 链接。
  2. 在资源组页上,确保列出的资源是要删除的。
  3. 选择“删除”,在文本框中键入“myResourceGroup”,然后选择“删除” 。

清理资源

在前面的步骤中,你在资源组中创建了 Azure 资源。 如果认为将来不需要这些资源,请在本地 Azure CLI 中运行以下命令删除资源组:

az group delete --name myResourceGroup

此命令可能需要花费一点时间运行。

清理资源

在前面的步骤中,你在资源组中创建了 Azure 资源。 如果你认为将来不再需要这些资源,请运行以下 PowerShell 命令删除资源组:

Remove-AzResourceGroup -Name myResourceGroup

此命令可能需要花费一点时间运行。

清理资源

在前面的步骤中,你在资源组中创建了 Azure 资源。 如果将来不再需要这些资源,可以通过删除资源组来删除它们。

  1. 在 Azure 门户的 Web 应用的“概述”页中,选择“资源组”下的 myResourceGroup 链接。
  2. 在资源组页上,确保列出的资源是要删除的。
  3. 选择“删除”,在文本框中键入“myResourceGroup”,然后选择“删除” 。

后续步骤