在 Azure 中创建 ASP.NET Core Web 应用

Note

若要查找 ASP.NET Framework 应用的步骤,请参阅在 Azure 中创建 ASP.NET Framework Web 应用

Azure Web 应用提供高度可缩放、自修补的 Web 托管服务。 本快速入门演示如何将第一个 ASP.NET Core Web 应用部署到 Azure Web 应用中。 完成后,便拥有了一个资源组,该资源组包含一个应用服务计划和一个具有已部署的 Web 应用程序的 Azure Web 应用。

Note

如果没有 Azure 订阅,可在开始前创建一个试用帐户

先决条件

完成本教程:

  • 使用以下工作负荷安装 Visual Studio 2017

    • ASP.NET 和 Web 开发
    • Azure 开发

      ASP.NET 和 Web 开发以及 Azure 开发(在 Web 和云下)

Note

若要将 Visual Studio 连接到 Azure 中国区,可按使用 Visual Studio 2015 连接中国区 Azure中的说明操作。

如果使用的是 Visual Studio 2015 Update 2 或更高版本,可以按照以下图片中的说明,选中“启用隔离的 Azure Active Directory 配置”选项。

enable-isolated-azure-active-directory-configuration

如果使用的是 Visual Studio 2017,可按 使用 Visual Studio 2017 连接中国区 Azure中的说明操作。

创建一个 ASP.NET Core Web 应用

在 Visual Studio 中,通过依次选择“文件”>“新建”>“项目”创建项目。

在“新建项目”对话框中,选择“Visual C#”>“Web”>“ASP.NET Core Web 应用程序”。

将应用程序命名为 myFirstAzureWebApp,选择“新建 Git 存储库”,然后选择“确定”。

“新建项目”对话框

可将任何类型的 ASP.NET Core Web 应用部署到 Azure。 在本快速入门教程中,请选择“Web 应用程序”模板,并确保将身份验证设置为“无身份验证”。

选择“确定” 。

“新建 ASP.NET 项目”对话框

创建 ASP.NET Core 项目后,将显示 ASP.NET Core 欢迎页,其中提供了大量有助于入门的资源链接。

欢迎页

在菜单中,选择“调试>启动但不调试”以在本地运行 Web 应用。

在本地运行应用

配置部署用户

使用 az webapp deployment user set 命令创建部署凭据。

在 Web 应用中进行 FTP 和本地 Git 部署时需要一个部署用户。 用户名和密码都为帐户级别。 它们与 Azure 订阅凭据不同。

在以下命令中,将 <user-name> 和 <password> 替换为新的用户名和密码。 用户名必须唯一。 密码长度必须至少为 8 个字符,其中包含以下 3 种元素中的两种:字母、数字、符号。

az webapp deployment user set --user-name <username> --password <password>

如果收到 'Conflict'. Details: 409 错误,请更改用户名。 如果收到 'Bad Request'. Details: 400 错误,请使用更强的密码。

只创建此部署用户一次;可对所有 Azure 部署使用此用户。

Note

记录用户名和密码。 稍后需要使用它们来部署 Web 应用。

创建资源组

使用 az group create 命令创建资源组。

资源组是在其中部署和管理 Azure 资源(例如 Web 应用、数据库和存储帐户)的逻辑容器。

以下示例在“chinanorth”位置创建名为“myResourceGroup”的资源组。 若要查看应用服务支持的所有位置,请运行 az appservice list-locations 命令。

az group create --name myResourceGroup --location chinanorth

通常在附近的区域中创建资源组和资源。

此命令完成后,JSON 输出会显示资源组属性。

创建 Azure 应用服务计划

使用 az appservice plan create 命令创建应用服务计划。

Note

应用服务计划表示用于托管应用的物理资源集合。 分配到应用服务计划的所有应用程序将共享该计划定义的资源。 托管多个应用时,此共享可让你节省资金。

应用服务计划定义:

  • 区域(中国东部和中国北部)。
  • 实例大小(小、中、大)
  • 规模计数(默认情况为 1 到 20 个实例)
  • SKU(免费、共享、基本、标准、高级)

以下示例在免费定价层中创建名为 myAppServicePlan 的应用服务计划:

az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE

创建应用服务计划后,Azure CLI 将显示类似于以下示例的信息:

{ 
  "adminSiteName": null,
  "appServicePlanName": "myAppServicePlan",
  "geoRegion": "China North",
  "hostingEnvironmentProfile": null,
  "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan",
  "kind": "app",
  "location": "China North",
  "maximumNumberOfWorkers": 1,
  "name": "myAppServicePlan",
  < JSON data removed for brevity. >
  "targetWorkerSizeId": 0,
  "type": "Microsoft.Web/serverfarms",
  "workerTierName": null
} 

创建 Web 应用

使用 az webapp create 命令在 myAppServicePlan 应用服务计划中创建一个 Web 应用

在以下示例中,将 <app_name> 替换为全局唯一的应用名称(有效字符是 a-z0-9-)。

az webapp create --name <app_name> --resource-group myResourceGroup --plan myAppServicePlan --deployment-local-git

创建 Web 应用后,Azure CLI 将显示类似于以下示例的信息:

Local git is configured with url of 'https://<username>@<app_name>.scm.chinacloudsites.cn/<app_name>.git'
{
  "availabilityState": "Normal",
  "clientAffinityEnabled": true,
  "clientCertEnabled": false,
  "cloningInfo": null,
  "containerSize": 0,
  "dailyMemoryTimeQuota": 0,
  "defaultHostName": "<app_name>.chinacloudsites.cn",
  "deploymentLocalGitUrl": "https://<username>@<app_name>.scm.chinacloudsites.cn/<app_name>.git",
  "enabled": true,
  < JSON data removed for brevity. >
}

已创建了一个空的 Web 应用并启用了 Git 部署。

Note

Git 远程的 URL 将显示在 deploymentLocalGitUrl 属性中,其格式为 https://<username>@<app_name>.scm.chinacloudsites.cn/<app_name>.git。 保存此 URL,因为稍后将需要它。

浏览到新建的 Web 应用。

http://<app_name>.chinacloudsites.cn

空 Web 应用页

从 Visual Studio 推送到 Azure

回到 Visual Studio,在“视图”菜单中单击“团队资源管理器”。 此时会显示团队资源管理器

在“主页”视图中,单击“设置” > “存储库设置”。

团队资源管理器主页视图

在“存储库设置”的“远程”部分,选择“添加”。 此时会显示“添加远程”对话框。

将“名称”字段设置为“Azure”,然后将“提取”字段设置为通过创建 Web 应用保存的 URL。 单击“保存” 。

团队资源管理器主页视图

此设置相当于 Git 命令 git remote add Azure <URL>

单击顶部的“主页”按钮。

选择“设置” > “全局设置”。 确认已设置名称和电子邮件地址。 必要时选择“更新”。

Visual Studio 已在创建项目时将所有文件提交到 Git 存储库中。 你现在需要做的是将文件推送到 Azure。

单击顶部的“主页”按钮。 选择“同步” > “操作” > “打开命令提示符”。

在命令窗口中输入以下命令,并在系统提示时输入部署密码:

git push Azure master

此命令可能需要花费几分钟时间运行。 运行时,该命令会显示类似于以下示例的信息:

Counting objects: 4, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 349 bytes | 349.00 KiB/s, done.
Total 4 (delta 3), reused 0 (delta 0)
remote: Updating branch 'master'.
remote: Updating submodules.
remote: Preparing deployment for commit id '9e20345e9c'.
remote: Generating deployment script.
remote: Project file path: .\myFirstAzureWebApp\myFirstAzureWebApp.csproj
remote: Solution file path: .\myFirstAzureWebApp.sln
remote: Generated deployment script files
remote: Running deployment command...
remote: Handling ASP.NET Core Web Application deployment.
remote:   Restoring packages for D:\home\site\repository\myFirstAzureWebApp\myFirstAzureWebApp.csproj...
remote:   Restoring packages for D:\home\site\repository\myFirstAzureWebApp\myFirstAzureWebApp.csproj...
...
remote: Finished successfully.
remote: Running post deployment command(s)...
remote: Deployment successful.
To https://<app_name>.scm.azurewebsites.net/<app_name>.git
 * [new branch]      master -> master

浏览到应用

在浏览器中导航到 Azure Web 应用 URL:http://<app_name>.chinacloudsites.cn

该页作为 Azure 应用服务 Web 应用运行。

已在 Azure 中发布的 ASP.NET Web 应用

恭喜,ASP.NET Core Web 应用已在 Azure 应用服务中实时运行!

更新应用并重新部署

在“解决方案资源管理器”中打开“Pages/Index.cshtml”。

在顶部附近找到 <div id="myCarousel" class="carousel slide" data-ride="carousel" data-interval="6000"> HTML 标记,将整个元素替换为以下代码:

<div class="jumbotron">
    <h1>ASP.NET in Azure!</h1>
    <p class="lead">This is a simple app that we've built that demonstrates how to deploy a .NET app to Azure App Service.</p>
</div>

在“解决方案资源管理器”中右键单击“Pages/Index.cshtml”,然后单击“提交”。 针对所做的更改输入提交消息,然后单击“全部提交”。

返回到命令提示符窗口,将代码更改推送到 Azure。

git push Azure master

部署完成后,再次导航到 http://<app_name>.chinacloudsites.cn

已在 Azure 中更新的 ASP.NET Web 应用

管理 Azure Web 应用

转到 Azure 门户管理 Web 应用。

从左侧菜单中选择“应用服务”,然后选择 Azure Web 应用的名称。

在门户中导航到 Azure Web 应用

随后会显示 Web 应用的概述页。 在此处可以执行基本的管理任务,例如浏览、停止、启动、重启和删除。

Azure 门户中的“应用服务”页

左侧菜单提供用于配置应用的不同页面。

清理资源

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

在 Azure 门户的左侧菜单中,选择“资源组”,然后选择“myResourceGroup”。

在资源组页中,确保列出的资源是要删除的资源。

选择“删除”,在文本框中键入 myResourceGroup,然后选择“删除”。

后续步骤