将 ASP.NET 应用部署到 Compute Engine 上的 Windows Server

1. 概览

ASP.NET 是一个开源 Web 框架,用于使用 .NET 构建现代 Web 应用和服务。ASP.NET 基于 HTML5、CSS 和 JavaScript 创建简单、快速并且可扩展到数百万用户的网站。

在本实验中,您需要将一个简单的 ASP.NET 应用部署到在 Compute Engine 上运行的 Windows Server。此 Codelab 以使用 ASP.NET 框架将 Windows Server 部署到 Compute Engine Codelab 为基础。建议您先完成该实验。

此外,您还需要使用 Visual Studio 2013 或更高版本编写 ASP.NET 应用并将其部署到 Compute Engine。

学习内容

  • 如何创建简单的 ASP.NET 应用。
  • 如何在 Visual Studio 中本地运行 ASP.NET 应用。
  • 如何在 Compute Engine 上部署和运行 ASP.NET 应用至 Windows Server。

所需条件

您打算如何使用本教程?

仅阅读教程内容 阅读并完成练习

如何评价您的 Google Cloud Platform 使用体验?

<ph type="x-smartling-placeholder"></ph> 新手 中级 熟练

2. 设置和要求

自定进度的环境设置

您应该已经拥有上一个实验中的 Google Cloud Platform 项目,因此无需创建新项目。登录 Google Cloud Platform 控制台 ( console.cloud.google.com),然后选择上一个实验中的项目。

3. 下载 ASP.NET 应用

以 zip 文件的形式下载该示例并将其解压缩。

或者,您也可以克隆其 Git 代码库。

git clone https://github.com/GoogleCloudPlatform/getting-started-dotnet.git

无论采用哪种方式,您都应该有一个 getting-started-dotnet 文件夹,其中包含以下内容。

1acce2c66bc3b8aa

4. 在本地运行应用

双击 aspnet\1-hello-world\hello-world.sln。这会在 Visual Studio 中打开该解决方案。

8a699ba7495ab79e

查看 WebApiConfig.cs.,其中包含一个简单的 HelloWorld HTTP 处理程序。

public class HelloWorldHandler : HttpMessageHandler
{
  protected override Task<HttpResponseMessage> SendAsync(
       HttpRequestMessage request,
       CancellationToken cancellationToken)
  {
    return Task.FromResult(new HttpResponseMessage()
    {
      Content = new ByteArrayContent(Encoding.UTF8.GetBytes("Hello World."))
    });
  }
};

在 Visual Studio 中,按 F5 构建并运行应用。Visual Studio 下载 NuGet 依赖项并构建应用后,您应该会看到浏览器中弹出一条 Hello World 消息。

77768b92a41434c2

确定应用在本地运行后,按 Shift + F5 停止该应用。

5. 使用 ASP.NET 框架部署 Windows Server

在本部分,我们将学习如何使用 Cloud Marketplace 从 Google Cloud 控制台安装 Windows Server 和 ASP.NET Framework 并创建新的 Google Compute Engine 虚拟机实例。

登录 Google Cloud 控制台

从其他浏览器标签页或窗口转到 Google Cloud 控制台,网址为 https://console.cloud.google.com。请使用您在注册 Google Cloud Platform 时设置的登录凭据,或由实验监考官提供给您的登录凭据。

f6cb1591046097da.png

在 Google Cloud 控制台中,点击产品和服务

32152624d878d9f8

然后前往 Cloud Marketplace

6c08c9a31e3a9c6c

搜索 ASP.NET Framework

输入 ASP.NET 以搜索 ASP.NET Framework,然后点击下面的结果框。

d64d04962212c3c1.png

在 Compute Engine 上启动

在下一个屏幕中,点击在 Compute Engine 上启动

创建新实例时,您可以配置多种参数。使用以下设置:

名称

gcelab

部署名称

windows-aspnet-instance

可用区

europe-west1-d详细了解区域和可用区文档

机器类型

1 vCPU (n1-standard-1)n1-standard-1 足以满足 ASP.NET 网站的 1 个核心和 3.75GiB 的 RAM。不过,您也可以选择更小或更大的机器,最高可达 32 核 / 208GiB RAM。如需详细了解此机器类型和自定义机器类型,请参阅“机器类型”文档注意:新项目具有默认的资源配额,这可能会限制 CPU 核心的数量。您可以为项目请求更多配额。

Windows Server 操作系统版本

2016

启动磁盘类型

Standard persistent disk注意:您可以选择性能更高的固态硬盘 (SSD)。请参阅存储方案

磁盘大小 (GB)

100 我们使用的是默认的 100GB,但您可以根据自己的需要调整其大小。

防火墙

Allow HTTP traffic
Allow HTTPS traffic
Allow WebDeploy traffic
Allow RDP traffic保留默认设置,这样将创建防火墙规则,以允许 HTTP、HTTPS 流量以及 WebDeploy 和 RDF 流量。

点击部署,使用 Windows Server 和 ASP.NET Framework 创建新的虚拟机实例!这时系统会打开一个新页面,您可以在其中查看进度。

3276c6d3647fd36

完成后,从左侧菜单转到 Compute Engine,然后选择虚拟机实例。您应该会在虚拟机实例列表中看到新的虚拟机。

fc50b1cfd8b1f4b3.png

如果点击外部 IP,您还应该会看到实例提供的默认 IIS 网站。

iis.PNG

请注意,您也可以通过远程桌面协议 (RDP) 访问机器,但我们需要先创建 Windows 用户和密码。

6. 创建 Windows 用户和密码

如需创建 Windows 用户和密码,请选择创建或重置 Windows 密码

cf9b67269c4fa290.png

系统会打开一个新窗口,您可以在其中创建用户。保留默认设置,然后选择设置。几秒钟后,您应该会看到新的 Windows 密码对话框,其中包含新创建的密码。记下该密码,因为下一部分需要用到该密码。

7. 将应用部署到 Compute Engine 上的 Windows Server

是时候将您的应用部署到在 Compute Engine 实例上运行的 Windows Server 了。

首先,您需要找到使用 ASP.NET 框架将 Windows Server 部署到 Compute Engine 中部署的 Compute Engine 实例的外部 IP。在 Cloud 控制台中,转到“计算”>虚拟机实例,找到您的实例并记下其外部 IP 地址。

8163b495fda4a4c5

现在,您将需要在上一步中创建的 Windows 用户名和密码。

在 Visual Studio 解决方案资源管理器中,右键点击项目,然后从上下文菜单中选择发布

31dc67741553583e

发布 Web 对话框中,选择自定义作为发布目标。

新建自定义配置文件对话框中,为部署配置文件提供一个名称,然后点击“确定”。

填写您的个人资料,如下所示。

设备

The external IP address of your Compute Engine instance. This address can be found on the “虚拟机实例”页面 in the Cloud Console. The IP address is 临时, which is sufficient for our purposes.

网站名称

Default Web Site注意:您在此处提供的网站名称必须与 Compute Engine 实例上的 IIS 管理器中显示的名称一致。

用户名

The username of the Windows user account you created on your Compute Engine instance.

密码

The password of the Windows user account you created on your Compute Engine instance.

目标网址

http://注意:目标网址是网页部署后可供访问的地址。

点击验证连接,确保属性正确无误。

5587e66e1f61acd6

由于部署中的 Microsoft IIS 安装默认使用自签名证书,因此您会在验证过程中看到证书错误。选中保存此证书以供 Visual Studio 将来的会话使用复选框,然后点击接受以接受证书。

e7cc4bdef3064b9b.png

如果您的配置有效,请点击设置。点击文件发布选项,然后选中移除目标位置的其他文件。在将新网站发布到同一 Compute Engine 实例时,这对于后续步骤而言非常重要。

1014554485ba6720

点击发布以部署应用。发布完成后,Visual Studio 会在您的默认网络浏览器中打开该应用。

feab07f5ac573240.png

8. 清理

大功告成!现在,是时候清理您使用的资源了(以节省费用并成为一名优秀的云公民)。

您可以删除实例或直接停止实例,但请注意,已停止的实例仍可能会产生与存储相关的费用。

a3152ac7b76cdd4e.png

当然,您也可以删除整个项目,但您将丢失已完成的所有结算设置(必须先停用项目结算功能)。此外,如果删除项目,则只有在当前结算周期结束后,系统才会停止对该项目计费。

9. 恭喜!

Google Compute Engine 是 Google Cloud Platform 的基础架构即服务的基础。如您所见,将 ASP.NET 应用部署到 Compute Engine 上的 Windows Server 非常简单。

所学内容

  • 如何创建简单的 ASP.NET 应用。
  • 如何在 Visual Studio 中本地运行 ASP.NET 应用。
  • 如何在 Compute Engine 上部署和运行 ASP.NET 应用至 Windows Server。

后续步骤

许可

此作品已获得 Creative Commons Attribution 2.0 通用许可授权。

/