快速入门:部署 ASP.NET Web 应用
本快速入门介绍如何创建你的第一个 ASP.NET Web 应用并将其部署到 Azure 应用服务。 应用服务支持各种版本的 .NET 应用,并提供高度可缩放、自修补的 Web 托管服务。 ASP.NET Web 应用具有跨平台特性,可以在 Linux 或 Windows 上托管。 完成后,你会获得一个 Azure 资源组,其中包含一个应用服务托管计划,以及一个部署了 Web 应用程序的应用服务。
或者,可以将 ASP.NET Web 应用部署为应用服务中的 Windows 或 Linux 容器的一部分。
先决条件
- 具有活动订阅的 Azure 帐户。 创建帐户。
- 带有 ASP.NET 和 Web 开发工作负载的 Visual Studio 2022。
如果你已安装 Visual Studio 2022:
- 通过选择“帮助”>“检查更新”,在 Visual Studio 中安装最新更新。
- 通过选择“工具”>“获取工具和功能”,添加工作负荷。
- 具有活动订阅的 Azure 帐户。 创建帐户。
- Visual Studio Code。
- Azure 工具扩展。
- 最新的 .NET 7.0 SDK。
- 具有活动订阅的 Azure 帐户。 创建帐户。
- Azure CLI。
- 最新的 .NET 7.0 SDK。
- 具有活动订阅的 Azure 帐户。 创建帐户。
- Azure PowerShell。
- 最新的 .NET 7.0 SDK。
1. 创建 ASP.NET Web 应用
在计算机上打开终端窗口,进入工作目录。 使用
dotnet new webapp
命令创建新的 .NET Web 应用,然后将目录更改为新创建的应用。dotnet new webapp -n MyFirstAzureWebApp --framework net7.0 cd MyFirstAzureWebApp
在同一终端会话中,使用
dotnet run
命令本地运行该应用程序。dotnet run --urls=https://localhost:5001/
打开 Web 浏览器并导航到
https://localhost:5001
处的应用。你会看到页面中显示的模板 ASP.NET Core 7.0 Web 应用。
在此步骤中,你要创建演示项目的分支以进行部署。
- 转到 .NET 7.0 示例应用。
- 选择 GitHub 页面右上角的“创建分支”按钮。
- 选择“所有者”并保留默认存储库名称。
- 选择“创建分支”。
2. 发布 Web 应用
若要发布 Web 应用,必须先创建并配置一个新的应用服务,用于将应用发布到该服务。
在设置应用服务的过程中,你要创建:
遵循以下步骤创建应用服务资源并发布项目:
在“解决方案资源管理器”中右键单击“MyFirstAzureWebApp”项目,然后选择“发布”。
在“发布”中,选择“Azure”,然后单击“下一步”。
选择特定目标,即 Azure 应用服务 (Linux) 或 Azure 应用服务 (Windows)。 然后,选择“下一步”。
重要
面向 ASP.NET Framework 4.8 时,请使用 Azure 应用服务 (Windows)。
你的选项取决于你是否已登录 Azure 以及是否有一个链接到 Azure 帐户的 Visual Studio 帐户。 选择“添加帐户”或“登录”以登录 Azure 订阅。 如果你已经登录,请选择所需的帐户。
在“应用服务实例”的右侧,选择 +。
对于“订阅”,请接受列出的订阅,或从下拉列表中选择一个新订阅。
对于“资源组”,选择“新建”。 在“新资源组名称”中,输入“myResourceGroup”并选择“确定”。
对于“托管计划”,请选择“新建”。
在“托管计划:新建”对话框中,输入下表中指定的值:
设置 建议的值 说明 托管计划 MyFirstAzureWebAppPlan 应用服务计划的名称。 位置 中国北部 2 托管 Web 应用的数据中心。 大小 免费 定价层确定托管功能。 在名称中,输入仅包含有效字符
a-z
、A-Z
、0-9
和-
的唯一应用名称。 可以接受自动生成的唯一名称。 Web 应用的 URL 为http://<app-name>.chinacloudsites.cn
,其中<app-name>
是应用名称。选择“创建”以创建 Azure 资源。
向导完成后,会为你创建 Azure 资源,此时你做好发布 ASP.NET Core 项目的准备了。
在“发布”对话框中,确保选中你的新的应用服务应用,然后选择“完成”,再选择“关闭”。 Visual Studio 为所选应用服务应用创建发布配置文件。
在“发布”页中,选择“发布”。 如果看到警告消息时,请选择“继续”。
Visual Studio 将生成、打包应用并将其发布到 Azure,然后在默认浏览器中启动该应用。
你会看到页面中显示的 ASP.NET Core 7.0 Web 应用。
在 Visual Studio Code 中,选择“视图”>“命令面板”来打开命令面板。
搜索并选择“Azure 应用服务:新建 Web 应用(高级)”。
响应提示,如下所述:
- 如果出现系统提示,请登录到你的 Azure 帐户。
- 选择订阅。
- 选择“创建新 Web 应用…高级”。
- 对于“输入全局唯一名称”,请使用在所有 Azure 中都是唯一的名称(有效字符为
a-z
、0-9
和-
)。 良好的模式是结合使用公司名称和应用标识符。 - 选择“创建新的资源组”并提供一个名称,例如
myResourceGroup
。 - 当系统提示“选择运行时堆栈”时,请选择“.NET 7 (STS)”。
- 选择操作系统(Windows 或 Linux)。
- 选择附近的位置。
- 选择“创建新的应用服务计划”,提供一个名称,然后选择“F1 免费”定价层。
- 对于 Application Insights 资源,选择“暂时跳过”。
- 出现提示时,单击“部署”。
- 选择“MyFirstAzureWebApp”作为要部署的文件夹。
- 在出现提示时选择“添加配置”。
在“使用将工作区 "MyFirstAzureWebApp" 部署到 <app-name>”,选择“是”,以便每次在该工作区中时,Visual Studio Code 都会部署到相同的应用服务应用。
发布完成后,选择通知中的“浏览网站”,并在出现提示时选择“打开”。
你会看到页面中显示的 ASP.NET Core 7.0 Web 应用。
使用
az login
命令并按照提示登录到 Azure 帐户:az login
- 如果无法识别
az
命令,请确保已按照 必备条件 中所述安装了 Azure CLI。
- 如果无法识别
使用
az webapp up
命令在本地 MyFirstAzureWebApp 目录中部署代码:az webapp up --sku F1 --name <app-name> --os-type <os>
- 将
<app-name>
替换为在整个 Azure 中均唯一的名称(有效字符为a-z
、0-9
和-
)。 良好的模式是结合使用公司名称和应用标识符。 --sku F1
参数在“免费”定价层上创建 Web 应用。 省略此参数可使用更快的高级层,这会按小时计费。- 用
linux
或windows
替换<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
- 将
打开 Web 浏览器并导航到 URL:
你会看到页面中显示的 ASP.NET Core 7.0 Web 应用。
注意
建议使用 Azure PowerShell 在 Windows 托管平台上创建应用。 若要在 Linux 上创建应用,请使用其他工具,例如 Azure CLI。
使用
Connect-AzAccount -Environment AzureChinaCloud
命令并按照提示登录到 Azure 帐户:Connect-AzAccount -Environment AzureChinaCloud
使用 New-AzWebApp 命令创建新的应用:
New-AzWebApp -Name <app-name> -Location chinanorth2
- 将
<app-name>
替换为在整个 Azure 中均唯一的名称(有效字符为a-z
、0-9
和-
)。 结合使用公司名称和应用标识符是一种良好的模式。 - 可选择包含参数
-Location <location-name>
,其中<location-name>
是可用的 Azure 区域。 可以运行Get-AzLocation
命令来检索 Azure 帐户的允许区域列表。
该命令可能需要几分钟时间才能完成。 当该命令运行时,它会创建资源组、应用服务计划和应用服务资源。
- 将
从应用程序根文件夹,使用
dotnet publish
命令准备本地 MyFirstAzureWebApp 应用程序进行部署:dotnet publish --configuration Release
更改为发布目录,并根据内容创建一个 zip 文件:
cd bin\Release\net7.0\publish Compress-Archive -Path * -DestinationPath deploy.zip
使用 Publish-AzWebApp 命令将 zip 文件发布到 Azure 应用:
Publish-AzWebApp -ResourceGroupName myResourceGroup -Name <app-name> -ArchivePath (Get-Item .\deploy.zip).FullName -Force
注意
-ArchivePath
需要 zip 文件的完整路径。打开 Web 浏览器并导航到 URL:
你会看到页面中显示的 ASP.NET Core 7.0 Web 应用。
在搜索框中键入“应用服务”。 在“服务”下选择“应用程序服务” 。
在“应用服务”页面中,请选择“+ 创建”。
在“基本信息”选项卡中:
- 在“资源组”下,选择“新建”。 对于名称,请键入 myResourceGroup。
- 在“名称”下,为 Web 应用键入全局唯一名称。
- 在“发布”下,选择“代码”。
- 在“运行时堆栈”下,选择“.NET 7 (STS)”。
- 依次选择“操作系统”以及你希望在其中提供应用的“区域”。
- 在“应用服务计划”下,选择“新建”,然后输入 myAppServicePlan 作为名称。
- 在“定价计划”下,选择“免费 F1”。
选择页面底部的“下一步: 部署 >”按钮。
在“部署”选项卡中的“GitHub Actions 设置”下,确保已启用“持续部署”。
在“GitHub Actions 详细信息”下,使用 GitHub 帐户进行身份验证,然后选择以下选项:
- 对于“组织”,选择在其中创建了演示项目分支的组织。
- 对于“存储库”,选择 dotnetcore-docs-hello-world 项目。
- 对于“分支”,请选择 master。
选择页面底部的“查看 + 创建”按钮。
运行验证之后,请选择页面底部的“创建”按钮。
在部署完成之后,选择“转到资源”。
在 Web 浏览器中使用以下 URL 浏览到已部署的应用程序:
http://<app-name>.chinacloudsites.cn
。
3. 更新应用并重新部署
遵循以下步骤更新并重新部署 Web 应用:
在“解决方案资源管理器”中你的项目下,打开“Index.cshtml”。
将第一个
<div>
元素替换为以下代码:<div class="jumbotron"> <h1>.NET 💜 Azure</h1> <p class="lead">Example .NET app to Azure App Service.</p> </div>
保存更改。
若要重新部署到 Azure,请在“解决方案资源管理器”中右键单击“MyFirstAzureWebApp”项目,然后选择“发布”。
在“发布”摘要页中选择“发布” 。
发布完成后,Visual Studio 将启动浏览器并转到 Web 应用的 URL。
你会看到页面中显示的更新后的 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>
保存更改。
在 Visual Studio Code 中,打开“命令面板”,快捷键为 Ctrl+Shift+P。
搜索并选择“Azure 应用服务:部署到 Web 应用”。
出现提示时,选择“部署”。
发布完成后,选择通知中的“浏览网站”,并在出现提示时选择“打开”。
你会看到页面中显示的更新后的 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>
替换为 linux
或 windows
的部署。
az webapp up --os-type <os>
此命令使用本地缓存在 .azure/config 文件中的值,包括应用名称、资源组和应用服务计划。
完成部署后,切换回在“浏览到应用” 步骤中打开的浏览器窗口,并点击“刷新”。
你会看到页面中显示的更新后的 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>
从应用程序根文件夹,使用
dotnet publish
命令准备本地 MyFirstAzureWebApp 应用程序进行部署:dotnet publish --configuration Release
更改为发布目录,并根据内容创建一个 zip 文件:
cd bin\Release\net7.0\publish Compress-Archive -Path * -DestinationPath deploy.zip
使用 Publish-AzWebApp 命令将 zip 文件发布到 Azure 应用:
Publish-AzWebApp -ResourceGroupName myResourceGroup -Name <app-name> -ArchivePath (Get-Item .\deploy.zip).FullName -Force
注意
-ArchivePath
需要 zip 文件的完整路径。完成部署后,切换回在“浏览到应用” 步骤中打开的浏览器窗口,并点击“刷新”。
你会看到页面中显示的更新后的 ASP.NET Core 7.0 Web 应用。
浏览到示例代码的 GitHub 分支。
在存储库页面上,按
.
在浏览器中启动 Visual Studio Code。注意
URL 将从 GitHub.com 更改为 GitHub.dev。 此功能仅适用于具有文件的存储库。 它不适用于空存储库。
打开 index.cshtml。
Index.cshtml 位于
Pages
文件夹中。将第一个
<div>
元素替换为以下代码:<div class="jumbotron"> <h1>.NET 💜 Azure</h1> <p class="lead">Example .NET app to Azure App Service.</p> </div>
保存更改。
从“源代码管理”菜单中,选择“暂存更改”按钮以暂存更改。
输入提交消息,如
We love Azure
。 然后选择“提交和推送”。完成部署后,返回到“浏览到应用”步骤期间打开的浏览器窗口,然后刷新页面。
你会看到页面中显示的更新后的 ASP.NET Core 7.0 Web 应用。
4. 管理 Azure 应用
若要管理 Web 应用,请转到 Azure 门户,然后搜索并选择“应用服务”。
在“应用服务”页上,选择 Web 应用的名称。
Web 应用的“概述”页包含用于基本管理(例如浏览、停止、启动、重启和删除)的选项。 左侧菜单提供用于配置应用的更多页面。
清理资源
在前面的步骤中,你在资源组中创建了 Azure 资源。 如果将来不再需要这些资源,可以通过删除资源组来删除它们。
- 在 Azure 门户的 Web 应用的“概述”页中,选择“资源组”下的 myResourceGroup 链接。
- 在资源组页上,确保列出的资源是要删除的。
- 选择“删除”,在文本框中键入“myResourceGroup”,然后选择“删除” 。
清理资源
在前面的步骤中,你在资源组中创建了 Azure 资源。 如果将来不再需要这些资源,可以通过删除资源组来删除它们。
- 在 Azure 门户的 Web 应用的“概述”页中,选择“资源组”下的 myResourceGroup 链接。
- 在资源组页上,确保列出的资源是要删除的。
- 选择“删除”,在文本框中键入“myResourceGroup”,然后选择“删除” 。
清理资源
在前面的步骤中,你在资源组中创建了 Azure 资源。 如果认为将来不需要这些资源,请在本地 Azure CLI 中运行以下命令删除资源组:
az group delete --name myResourceGroup
此命令可能需要花费一点时间运行。
清理资源
在前面的步骤中,你在资源组中创建了 Azure 资源。 如果你认为将来不再需要这些资源,请运行以下 PowerShell 命令删除资源组:
Remove-AzResourceGroup -Name myResourceGroup
此命令可能需要花费一点时间运行。
清理资源
在前面的步骤中,你在资源组中创建了 Azure 资源。 如果将来不再需要这些资源,可以通过删除资源组来删除它们。
- 在 Azure 门户的 Web 应用的“概述”页中,选择“资源组”下的 myResourceGroup 链接。
- 在资源组页上,确保列出的资源是要删除的。
- 选择“删除”,在文本框中键入“myResourceGroup”,然后选择“删除” 。
后续步骤
请继续学习下一篇文章,了解如何创建 .NET Core 应用并将其连接到 SQL 数据库: