你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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

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

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

此视频演示如何部署 ASP.NET Web 应用。

视频中的步骤也在以下部分进行了介绍。

先决条件

如果你已安装 Visual Studio 2022:

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

1. 创建 ASP.NET Web 应用

1. 初始化 ASP.NET Web 应用模板

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

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

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

    Screenshot of Visual Studio - Configure ASP.NET 7.0 web app.

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

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

    Screenshot of Visual Studio - Additional info when selecting .NET 7.0.

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

    Screenshot of Visual Studio - ASP.NET Core 7.0 running locally.

  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 应用。

    Screenshot of Visual Studio Code - ASP.NET Core 7.0 in local browser.

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

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

本快速入门使用 Azure Developer CLI (azd) 来创建 Azure 资源并向其部署代码。 有关 Azure Developer CLI 的详细信息,请访问文档培训路径

使用以下步骤检索和初始化本快速入门的 ASP.NET Core Web 应用模板

  1. 在计算机上打开终端窗口,进入空工作目录。 使用 azd init 命令初始化 azd 模板。

    azd init --template https://github.com/Azure-Samples/quickstart-deploy-aspnet-core-app-service.git
    

    当系统提示输入环境名称时,请输入 dev

  2. 在同一终端会话中,使用 dotnet run 命令本地运行该应用程序。 使用 --project 参数指定 azd 模板的 src 目录,该目录是应用程序代码所在的位置。

    dotnet run --project src --urls=https://localhost:5001/
    
  3. 打开 Web 浏览器并导航到 https://localhost:5001 处的应用。 ASP.NET Core 7.0 Web 应用模板将显示在页面上。

    Screenshot of Visual Studio Code - ASP.NET Core 7.0 in local browser.

2. 发布 Web 应用

AZD 模板包含的文件将生成以下所需资源,以便你的应用程序在应用服务中运行:

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

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

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

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

    Screenshot of Visual Studio - Publish the web app and target Azure.

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

    重要

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

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

    Screenshot of Visual Studio - Select sign in to Azure dialog.

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

    Screenshot of Visual Studio - New App Service app dialog.

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

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

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

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

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

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

    Screenshot of Visual Studio - Create app resources dialog.

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

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

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

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

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

    Screenshot of Visual Studio - ASP.NET Core 7.0 web app in Azure.

  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 应用。

    Screenshot of Visual Studio Code - ASP.NET Core 7.0 web app in Azure.

  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>.azurewebsites.net
    
  3. 打开 Web 浏览器并导航到 URL:

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

    Screenshot of the CLI - ASP.NET Core 7.0 web app in Azure.

注意

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

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

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

    New-AzWebApp -Name <app-name> -Location westeurope
    
    • <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 应用。

    Screenshot of the CLI - ASP.NET Core 7.0 web app in Azure.

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

    Screenshot of portal search in the Azure portal.

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

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

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

    Screenshot of new App Service app configuration for .NET 7 in the Azure portal.

  4. 选择页面顶部的“部署”选项卡

  5. 在“GitHub Actions 设置”下,将“持续部署”设置为“启用”

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

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

    Screenshot of the deployment options for an app using the .NET 6 runtime.

    注意

    默认情况下,创建向导禁用基本身份验证,并使用用户分配的标识创建 GitHub Actions 部署。 如果在资源创建过程中遇到权限错误,则表明你的 Azure 帐户可能没有足够的权限。 可以使用 Azure 管理员为你生成的标识稍后配置 GitHub Actions 部署,也可以改为启用基本身份验证。

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

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

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

    Screenshot of the next step of going to the resource.

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

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

    azd auth login
    
  2. 使用 azd up 命令创建 Azure 资源并部署应用:

    azd up
    

    azd up 命令可能需要几分钟时间才能完成。 azd up 使用项目中的 Bicep 文件创建资源组、应用服务计划和托管应用。 它还执行某些配置,例如启用日志记录和部署已编译的应用代码。 在运行时,该命令会提供有关预配和部署过程的消息,包括指向 Azure 中部署的链接。 完成后,命令还会显示指向部署应用程序的链接。

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

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

    Screenshot of the deployed .NET Framework 4.8 sample app.

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 应用。

    Screenshot of Visual Studio - Updated ASP.NET Core 7.0 web app in Azure.

  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 应用。

    Screenshot of Visual Studio Code - Updated ASP.NET Core 7.0 web app in Azure.

在本地目录中,打开 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 应用。

Screenshot of the CLI - Updated ASP.NET Core 7.0 web app in Azure.

  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 应用。

    Screenshot of the CLI - Updated ASP.NET Core 7.0 web app in Azure.

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

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

    注意

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

  3. 打开 index.cshtml

    Index.cshtml 位于 Pages 文件夹中。

    Screenshot of the Explorer window from Visual Studio Code in the browser, highlighting the Index.cshtml in the dotnetcore-docs-hello-world repo.

  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 应用。

    Screenshot of the CLI - Updated ASP.NET Core 7.0 web app in Azure.

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

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

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

azd up

azd up 这次将跳过预配资源步骤,只重新部署代码,因为 Bicep 文件没有任何更改。

部署完成后,浏览器将打开至已更新的 ASP.NET Core 7.0 Web 应用。

Screenshot of the CLI - Updated ASP.NET Core 7.0 web app in Azure.

4. 管理 Azure 应用

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

Screenshot of the Azure portal - Select App Services option.

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

Screenshot of the Azure portal - App Services page with an example web app selected.

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

Screenshot of the Azure portal - App Service overview page.

清理资源

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

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

清理资源

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

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

清理资源

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

az group delete --name myResourceGroup

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

清理资源

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

Remove-AzResourceGroup -Name myResourceGroup

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

清理资源

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

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

清理资源

使用 azd down 命令删除资源组及其相关的所有资源:

azd down

有关使用 azd 模板和其他功能的后续步骤,请访问 Azure Developer CLI 文档。

后续步骤