将 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 应用。
  • 如何将 ASP.NET 应用部署到 Compute Engine 上的 Windows Server 并运行。

所需条件

您打算如何使用本教程?

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

您如何评价自己在 Google Cloud Platform 方面的经验水平?

新手水平 中等水平 熟练水平

2. 设置和要求

自定进度的环境设置

您应该已在之前的实验中创建了 Google Cloud Platform 项目,因此无需创建新项目。登录 Google Cloud Platform Console ( console.cloud.google.com),然后选择上一个实验中的项目。

3. 下载 ASP.NET 应用

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

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

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

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

1acce2c66bc3b8aa.png

4. 在本地运行应用

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

8a699ba7495ab79e.png

请查看 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.png

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

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

在本部分中,我们将学习如何使用 Google Cloud 控制台中的 Cloud Marketplace 创建一个安装了 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.png

然后前往 Cloud Marketplace

6c08c9a31e3a9c6c.png

搜索 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 具有 1 个核心和 3.75GiB 的 RAM,对于我们的 ASP.NET 网站来说绰绰有余。不过,您可以选择更小或更大的机器,最大可选择 32 核 / 208GiB RAM 的机器。如需详细了解此功能和自定义机器类型,请参阅“机器类型”说明文档注意:新项目有默认的资源配额,这可能会限制 CPU 核心的数量。您可以为项目申请更多配额。

Windows Server 操作系统版本

2016

启动磁盘类型

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

磁盘大小(以 GB 为单位)

100 我们使用的是默认值 100 GB,但您可以根据需要将其调整为更大或更小的值。

防火墙

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

点击部署以创建搭载 Windows Server 和 ASP.NET 框架的新虚拟机实例!系统会将您转到一个新页面,您可以在其中查看进度。

3276c6d3647fd36.png

完成后,在左侧菜单中前往 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 控制台中,依次前往“Compute”>“虚拟机实例”,找到您的实例并记下其外部 IP 地址。

8163b495fda4a4c5.png

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

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

31dc67741553583e.png

发布 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.png

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

e7cc4bdef3064b9b.png

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

1014554485ba6720.png

点击发布以部署应用。发布完成后,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 应用。
  • 如何将 ASP.NET 应用部署到 Compute Engine 上的 Windows Server 并运行。

后续步骤

许可

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

/