你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn 。
快速入门:部署 ASP.NET Web 应用
本文内容
先决条件
创建 ASP.NET Web 应用
发布 Web 应用
更新应用并重新部署
管理 Azure 应用
清理资源
后续步骤
显示另外 3 个
备注
从 2024 年 6 月 1 日开始,新创建的应用服务应用可以生成使用命名约定 <app-name>-<random-hash>.<region>.azurewebsites.net
的唯一默认主机名。 现有应用名称保持不变。 例如:
myapp-ds27dh7271aah175.westus-01.azurewebsites.net
有关详细信息,请参阅应用服务资源的唯一默认主机名 。
本快速入门介绍如何创建你的第一个 ASP.NET Web 应用并将其部署到 Azure 应用服务 。 应用服务支持各种版本的 .NET 应用。 它提供高度可缩放的、可自我修补的 Web 托管服务。 ASP.NET Web 应用具有跨平台特性,可以在 Linux 或 Windows 上托管。 完成后,你会获得一个 Azure 资源组,其中包含一个应用服务托管计划,以及一个部署了 Web 应用程序的应用服务。
或者,可以将 ASP.NET Web 应用部署为应用服务中的 Windows 或 Linux 容器 的一部分。
提示
在 Visual Studio、Visual Studio Code 和 Azure 门户步骤中查找 GitHub Copilot 提示。
备注
目前不支持使用 MSBuild 或 SCM_DO_BUILD 通过 Windows App 服务生成 .NET 9 (STS) 应用。 我们已计划在最初正式发布日期之后和 2024 年 12 月 4 日之前提供对这些生成方案的支持。 完全支持通过 Visual Studio、Visual Studio Code、GitHub Actions 和 Azure DevOps 在应用服务外部生成的部署。
如果已安装 Visual Studio 2022:
通过选择“帮助” > “检查更新”,在 Visual Studio 中安装最新更新。
通过选择“工具” > “获取工具和功能”,添加工作负荷。
打开 Visual Studio,然后选择“创建新项目”。
在“创建新项目” 中,找到并选择“ASP.NET Core Web 应用(Razor Pages)” ,然后选择“下一步” 。
在“配置新项目”中,将应用程序命名为“MyFirstAzureWebApp”,然后选择“下一步”。
选择“.NET 8.0(长期支持)”。
确保“身份验证类型” 设置为“无身份验证” 。 选择“创建”。
在 Visual Studio 菜单中,选择“调试” > “开始执行(不调试)”以在本地运行 Web 应用。 如果看到要求你信任自签名证书的消息,请选择“是 ”。
打开 Visual Studio,然后选择“创建新项目”。
在“创建新项目” 中,找到并选择“ASP.NET Web 应用程序 (.NET Framework)” ,然后选择“下一步” 。
在“配置新项目”中,将应用程序命名为“MyFirstAzureWebApp”,然后选择“创建”。
选择 MVC 模板。
确保“身份验证”设置为“不进行身份验证”。 选择“创建”。
在 Visual Studio 菜单中,选择“调试” > “开始执行(不调试)”以在本地运行 Web 应用。
在计算机上打开终端窗口,进入工作目录。 使用 dotnet new webapp 命令创建新的 .NET Web 应用,然后将目录更改为新创建的应用。
dotnet new webapp -n MyFirstAzureWebApp --framework net8.0
cd MyFirstAzureWebApp
在同一终端会话中,使用 dotnet run 命令在本地运行该应用程序。
dotnet run --urls=https://localhost:5001/
打开 Web 浏览器并导航到 https://localhost:5001
处的应用。
你会看到页面中显示的模板 ASP.NET Core 8.0 Web 应用。
在此步骤中,你要创建演示项目的分支以进行部署。
转到 .NET 8.0 示例应用 。
选择 GitHub 页面右上角的“创建分支”按钮。
选择“所有者”并保留默认存储库名称 。
选择“创建分支”。
本快速入门使用 Azure Developer CLI (azd
) 来创建 Azure 资源并向其部署代码。 有关详细信息,请参阅安装 Azure Developer CLI 和使用 Azure Developer CLI 生成和部署应用程序 。
若要获取并初始化 ASP.NET Core Web 应用模板 ,请执行以下步骤:
在计算机上打开终端窗口并转到一个空的工作目录。 运行下面的命令:
azd init --template https://github.com/Azure-Samples/quickstart-deploy-aspnet-core-app-service.git
当系统提示输入环境名称时,请输入 dev
。
在同一终端会话中,使用 dotnet run
命令本地运行该应用程序。 使用 --project
参数指定 azd
模板的 src
目录,该目录是应用程序代码所在的位置。
dotnet run --project src --urls=https://localhost:5001/
打开 Web 浏览器并导航到 https://localhost:5001
处的应用。 ASP.NET Core 8.0 Web 应用模板将显示在页面上。
遵循以下步骤创建应用服务资源并发布项目:
在“解决方案资源管理器”中右键单击“MyFirstAzureWebApp”项目,然后选择“发布”。
在“发布”中,选择“Azure”,然后单击“下一步”。
选择特定目标 ,即 Azure 应用服务 (Linux) 或 Azure 应用服务 (Windows) 。 选择下一步 。
重要
面向 ASP.NET Framework 4.8 时,请使用 Azure 应用服务 (Windows) 。
你的选项取决于你是否已登录 Azure 以及是否有一个链接到 Azure 帐户的 Visual Studio 帐户。 选择“添加帐户”或“登录”以登录 Azure 订阅。 如果你已经登录,请选择所需的帐户。
在“应用服务实例”的右侧,选择 + 。
对于“订阅”,请接受列出的订阅,或从下拉列表中选择一个新订阅。
对于“资源组”,选择“新建”。 在“新资源组名称”中,输入“myResourceGroup”并选择“确定”。
对于“托管计划”,请选择“新建”。
在“托管计划:新建”对话框中,输入下表中指定的值:
展开表
设置
建议值
说明
托管计划
MyFirstAzureWebAppPlan
应用服务计划的名称。
位置
“西欧”
托管 Web 应用的数据中心。
大小
选择最低层。
定价层 定义托管功能。
在“名称”中,输入唯一的应用名称。 仅包含字符 a-z
、A-Z
、0-9
和 -
。 可以接受自动生成的唯一名称。 Web 应用的 URL 为 http://<app-name>.azurewebsites.net
,其中 <app-name>
是应用名称。
选择“创建”以创建 Azure 资源。
该过程完成后,系统将为创建 Azure 资源。 现已准备好发布 ASP.NET Core 项目。
在“发布 ”对话框中,确保选中你的新的应用服务应用,然后选择“完成 ”,再选择“关闭 ”。 Visual Studio 为所选应用服务应用创建发布配置文件。
在“发布”页中,选择“发布”。 如果看到警告消息时,请选择“继续”。
Visual Studio 将生成、打包应用并将其发布到 Azure,然后在默认浏览器中启动该应用。
你会看到页面中显示的 ASP.NET Core 8.0 Web 应用。
你会看到页面中显示的 ASP.NET Framework 4.8 Web 应用。
从项目的根目录打开 Visual Studio Code。
code .
如果出现提示,请选择“是,我信任作者”。
在 Visual Studio Code 中,选择“视图”>“命令面板”打开命令面板 。
搜索并选择“Azure 应用服务: 新建 Web 应用(高级)” 。
响应提示,如下所述:
如果出现系统提示,请登录到你的 Azure 帐户。
选择订阅 。
选择“创建新 Web 应用…高级”。
对于“为新的 Web 应用输入全局唯一的名称”,请使用在整个 Azure 中唯一的名称 。 有效字符为 a-z
、0-9
和 -
。 良好的模式是结合使用公司名称和应用标识符。
选择“创建新的资源组”并提供一个名称,例如 myResourceGroup
。
当系统提示“选择运行时堆栈 ”时,请选择“.NET 8 (LTS) ”。
选择操作系统(Windows 或 Linux)。
选择附近的位置。
选择“创建新的应用服务计划” ,提供一个名称,然后选择“免费 (F1)”定价层 。
对于 Application Insights 资源,选择“暂时跳过” 。
出现提示时,选择“部署” 。
选择“MyFirstAzureWebApp”作为要部署的文件夹。
在出现提示时选择“添加配置”。
在对话框“始终将工作区‘MyFirstAzureWebApp’部署到 <app-name>”中选择“是”,以便每次进入该工作区,Visual Studio Code 都会部署到相同的应用服务应用 。
发布完成后,选择通知中的“浏览网站”,并在出现提示时选择“打开”。
你会看到页面中显示的 ASP.NET Core 8.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 区域。 若要获取 Azure 帐户允许的区域列表,请运行 az account list-locations 命令。
命令可能需要几分钟时间才能完成。 当该命令运行时,它会提供有关以下操作的消息:创建资源组、应用服务计划和托管应用,配置日志记录,然后执行 ZIP 部署。 然后,它显示一条包含应用 URL 的消息:
You can launch the app at http://<app-name>.azurewebsites.net
打开 Web 浏览器并导航到 URL。 你会看到页面中显示的 ASP.NET Core 8.0 Web 应用。
备注
建议使用 Azure PowerShell 在 Windows 托管平台上创建应用。 若要在 Linux 上创建应用,请使用其他工具,例如 Azure CLI 。
使用 Connect-AzAccount 命令按照提示登录到你的 Azure 帐户:
Connect-AzAccount
使用 New-AzWebApp 命令创建新的应用:
New-AzWebApp -ResourceGroupName myResourceGroup -Name <app-name> -Location westeurope
将 <app-name>
替换为在整个 Azure 中均唯一的名称。 有效字符为 a-z
、0-9
和 -
。结合使用公司名称和应用标识符是一种良好的模式。
可选择包含参数 -Location <location-name>
,其中 <location-name>
是可用的 Azure 区域。 若要获取 Azure 帐户允许的区域列表,请运行 Get-AzLocation 命令。
命令可能需要几分钟时间才能完成。 该命令将创建资源组、应用服务计划和应用服务资源。
从应用程序根文件夹运行 dotnet publish 命令,以准备本地 MyFirstAzureWebApp 应用程序进行部署 :
dotnet publish --configuration Release
更改为发布目录,并根据内容创建一个 zip 文件:
cd bin\Release\net8.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 8.0 Web 应用。
在搜索框中键入“应用服务”。 在“服务”下选择“应用程序服务”。
在“应用服务”页面中,请选择“创建” >“Web 应用”。
在“基本信息”选项卡中:
在“资源组”下,选择“新建”。 对于名称,输入 myResourceGroup 。
在“名称”下,为 Web 应用输入全局唯一名称 。
在“发布”下,选择“代码”。
在“运行时堆栈”下,选择“.NET 8 (LTS)” 。
在“操作系统”下选择“Windows” 。 如果选择“Linux”,则无法在下一步配置 GitHub 部署,但仍可在“部署中心”页中创建应用后执行此操作 。
选择要为应用提供服务的区域 。
在“应用服务计划 ”下,选择“新建 ”,然后输入 myAppServicePlan 作为名称。
在“定价计划 ”下,选择“免费 F1 ”。
在“资源组”下,选择“新建”。 对于名称,输入 myResourceGroup 。
在“名称”下,为 Web 应用输入全局唯一名称 。
在“发布”下,选择“代码”。
在“运行时堆栈”下,选择“ASP.NET V4.8”。
依次选择“操作系统”以及你希望在其中提供应用的“区域”。
在“应用服务计划 ”下,选择“新建 ”,然后输入 myAppServicePlan 作为名称。
在“定价计划 ”下,选择“免费 F1 ”。
选择页面顶部的“部署”选项卡
在“GitHub Actions 设置” 下,将“持续部署” 设置为“启用” 。
在“GitHub Actions 详细信息”下,使用 GitHub 帐户进行身份验证,然后选择以下选项:
对于“组织”,请选择在其中创建了演示项目分支的组织 。
对于“存储库”,请选择“dotnetcore-docs-hello-world”项目 。
对于“分支”,请选择“main” 。
对于“组织”,请选择在其中创建了演示项目分支的组织 。
对于“存储库”,请选择“app-service-web-dotnet-get-started”项目 。
对于“分支”,请选择“main” 。
在页面底部选择“查看 + 创建”。
运行验证之后,请选择页面底部的“创建” 。
在部署完成之后,选择“转到资源”。
在 Web 浏览器中使用以下 URL 浏览到已部署的应用程序:http://<app-name>.azurewebsites.net
。 如果看到“你的 Web 应用正在运行,并在等待你的内容”消息,则表明 GitHub 部署仍在运行 。 请等待几分钟,然后刷新页面。
AZD 模板包含的文件会生成以下所需资源,以便你的应用程序在应用服务中运行:
一个新的资源组 ,用于包含该服务的所有 Azure 资源。
新的应用服务计划 ,用于指定托管应用的 Web 服务器场的位置、大小和功能。
新的应用服务应用 ,用于运行已部署的应用实例。
使用 azd auth login
命令并按照提示登录到 Azure 帐户:
azd auth login
使用 azd up
命令创建 Azure 资源并部署应用:
azd up
azd up
命令可能需要几分钟时间才能完成。 azd up
使用项目中的 Bicep 文件创建资源组、应用服务计划和托管应用。 它还执行某些配置,例如启用日志记录和部署已编译的应用代码。 在运行时,该命令会提供有关预配和部署过程的消息,包括指向 Azure 中部署的链接。 完成后,命令还会显示指向部署应用程序的链接。
打开 Web 浏览器并导航到 URL。 你会看到页面中显示的 ASP.NET Core 8.0 Web 应用。
对 Index.cshtml 进行更改,然后重新部署以查看所做的更改 。 在 .NET 8.0 模板中,它位于 Pages 文件夹中。 在 .NET Framework 4.8 模板中,它位于 Views/Home 文件夹中。 遵循以下步骤更新并重新部署 Web 应用:
在“解决方案资源管理器”中的项目下,双击“Pages”>“Index.cshtml”将其打开 。
将第一个 <div>
元素替换为以下代码:
<div class="jumbotron">
<h1>.NET 💜 Azure</h1>
<p class="lead">Example .NET app to Azure App Service.</p>
</div>
提示
在 Visual Studio 中启用 GitHub Copilot 后,尝试执行以下步骤:
选择 <div>
元素并输入 Alt +/ 。
要求 Copilot“更改为显示‘.NET 💜 Azure’的启动卡。”
保存所做更改。
若要重新部署到 Azure,请在“解决方案资源管理器”中右键单击“MyFirstAzureWebApp”项目,然后选择“发布”。
在“发布”摘要页中选择“发布”。
发布完成后,Visual Studio 将启动浏览器并转到 Web 应用的 URL。
你会看到页面中显示的更新后的 ASP.NET Core 8.0 Web 应用。
你会看到页面中显示的更新后的 ASP.NET Framework 4.8 Web 应用。
打开 Pages/Index.cshtml 。
将第一个 <div>
元素替换为以下代码:
<div class="jumbotron">
<h1>.NET 💜 Azure</h1>
<p class="lead">Example .NET app to Azure App Service.</p>
</div>
提示
使用 GitHub Copilot 尝试此方法:
选择整个 <div>
元素,然后选择 。
要求 Copilot“更改为显示‘.NET 💜 Azure’的启动卡。”
保存所做更改。
在 Visual Studio Code 中打开命令面板 :Ctrl +Shift +P 。
搜索并选择“Azure 应用服务: 部署到 Web 应用” 。
选择之前使用的订阅和 Web 应用。
出现提示时,选择“部署” 。
发布完成后,选择通知中的“浏览网站” 。
你会看到页面中显示的更新后的 ASP.NET Core 8.0 Web 应用。
提示
若要了解带 GitHub Copilot 的 Visual Studio Code 如何帮助改善 Web 开发体验,请参阅 Visual Studio Code 步骤。
在本地目录中,打开 Pages/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
命令重新部署应用,并将 <os>
替换为 linux
或 windows
。
az webapp up --os-type <os>
此命令使用本地缓存在 .azure/config 文件中的值,包括应用名称、资源组和应用服务计划。
部署完成后,切换回在“浏览到应用”步骤中打开的浏览器窗口,并刷新页面 。
你会看到页面中显示的更新后的 ASP.NET Core 8.0 Web 应用。
在本地目录中,打开 Pages/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\net8.0\publish
Compress-Archive -Path * -DestinationPath deploy.zip -Force
使用 Publish-AzWebApp 命令将 zip 文件发布到 Azure 应用:
Publish-AzWebApp -ResourceGroupName myResourceGroup -Name <app-name> -ArchivePath (Get-Item .\deploy.zip).FullName -Force
备注
-ArchivePath
需要 zip 文件的完整路径。
部署完成后,切换回在“浏览到应用”步骤中打开的浏览器窗口,并刷新页面 。
你会看到页面中显示的更新后的 ASP.NET Core 8.0 Web 应用。
浏览到示例代码的 GitHub 分支。
在存储库页面上,通过选择“代码” > “在 main 分支上创建 codespace”来创建 codespace。
打开 Index.cshtml 。
Index.cshtml 位于 Pages 文件夹中 。
Index.cshtml 位于 aspnet-get-started/Views/Home 文件夹中
将第一个 <div>
元素替换为以下代码:
<div class="jumbotron">
<h1>.NET 💜 Azure</h1>
<p class="lead">Example .NET app to Azure App Service.</p>
</div>
更改将自动保存。
提示
使用 GitHub Copilot 尝试此方法:
选择整个 <div>
元素,然后选择 。
要求 Copilot“更改为显示‘.NET 💜 Azure’的启动卡。”
在“源代码管理” 菜单中输入提交消息,例如“Modify homepage
”。 然后选择“提交” ,并通过选择“是” 确认暂存所做的更改。
提示
通过在消息框中选择 ,让 GitHub Copilot 为你创建提交消息。
选择“同步更改 1 ”,然后通过选择“确定 ”进行确认。
需要几分钟才能运行部署。 若要查看进度,请导航到 https://github.com/<your-github-alias>/dotnetcore-docs-hello-world/actions
。
返回到在“浏览到应用” 步骤中打开的浏览器窗口,然后刷新页面。
你会看到页面中显示的更新后的 ASP.NET Core 8.0 Web 应用。
你会看到页面中显示的更新后的 ASP.NET Framework 4.8 Web 应用。
在本地目录中,打开 src/Pages/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 8.0 Web 应用。
若要管理 Web 应用,请转到 Azure 门户 ,然后搜索并选择“应用服务”。
在“应用服务”页上,选择 Web 应用的名称。
Web 应用的“概述”页包含用于基本管理(例如浏览、停止、启动、重启和删除)的选项。 左侧菜单提供用于配置应用的更多页面。
在前面的步骤中,你在资源组中创建了 Azure 资源。 如果将来不再需要这些资源,可以通过删除资源组来删除它们。
在 Azure 门户的 Web 应用的“概述” 页中,选择“资源组”下的 myResourceGroup 链接。
在资源组页上,确保列出的资源是要删除的。
选择“删除资源组” ,在文本框中键入“myResourceGroup” ,然后选择“删除” 。
通过选择“删除”再次进行确认 。
在前面的步骤中,你在资源组中创建了 Azure 资源。 如果将来不再需要这些资源,可以通过删除资源组来删除它们。
在 Azure 门户的 Web 应用的“概述” 页中,选择“资源组”下的 myResourceGroup 链接。
在资源组页上,确保列出的资源是要删除的。
选择“删除资源组” ,在文本框中键入“myResourceGroup” ,然后选择“删除” 。
通过选择“删除”再次进行确认 。
在前面的步骤中,你在资源组中创建了 Azure 资源。 如果认为将来不需要这些资源,请在 Cloud Shell 中运行以下命令删除资源组:
az group delete
为方便起见,每当你从此项目运行 az
命令时,你之前在此项目中运行的 az webapp up 命令都会将资源组名称保存为默认值。
在前面的步骤中,你在资源组中创建了 Azure 资源。 如果你认为将来不再需要这些资源,请运行以下 PowerShell 命令删除资源组:
Remove-AzResourceGroup -Name myResourceGroup
运行此命令可能需要一分钟时间。
在前面的步骤中,你在资源组中创建了 Azure 资源。 如果将来不再需要这些资源,可以通过删除资源组来删除它们。
在 Azure 门户的 Web 应用的“概述” 页中,选择“资源组”下的 myResourceGroup 链接。
在资源组页上,确保列出的资源是要删除的。
选择“删除资源组” ,在文本框中键入“myResourceGroup” ,然后选择“删除” 。
通过选择“删除”再次进行确认 。
请继续学习下一篇文章,了解如何创建 .NET Core 应用并将其连接到 SQL 数据库:
请继续学习下一篇文章,了解如何创建 .NET Framework 应用并将其连接到 SQL 数据库: