ASP.NET Core部署手册:3.Windows篇

  • ASP.NET Core部署手册:3.Windows篇已关闭评论
  • 25 次浏览
  • A+
所属分类:.NET技术
摘要

“don’t worry”,部署ASP.NET Core应用可以和原来部署.NET Framework的ASP.NET应用一样的简单,还是“熟悉的配方,熟悉的味道”,甚至提供了更加便捷的Kestrel部署方式,下面主要介绍在windows平台下两种常用部署方式:

“don't worry”,部署ASP.NET Core应用可以和原来部署.NET Framework的ASP.NET应用一样的简单,还是“熟悉的配方,熟悉的味道”,甚至提供了更加便捷的Kestrel部署方式,下面主要介绍在windows平台下两种常用部署方式:

  • 方式一:Kestrel部署Web应用
  • 方式二:IIS部署Web应用

下载ASP.NET Core运行时

在部署应用之前,ASP.NET Core运行时的具备是运行Web应用的基本条件,本文的部署以ASP.NET Core3.1的运行时版本为例,下载地址:https://dotnet.microsoft.com/zh-cn/download/dotnet/3.1,在界面上选择安装包时,保险起见建议选择Hosting Bundle(托管捆绑包),该包除了自身ASP.NET Core的运行时还包括了.NET 运行时和 IIS 支持。

 ASP.NET Core部署手册:3.Windows篇

请在文件下载后拷贝到对应的服务器进行安装。

ASP.NET Core部署手册:3.Windows篇

为了确认安装是否成功,我们可以使用.NET CLI命令来验证,打开命令行窗口输入:dotnet --info,点击回车后如果出现如下界面则表示运行时安装成功。

ASP.NET Core部署手册:3.Windows篇

1.方式一:Kestrel部署Web应用

1.1.配置Kestrel服务器监听的URL

Kestrel是ASP.NET Core内置的一个性能强大、功能丰富、跨平台的Web服务器,所以IIS服务器不再是我们部署应用的唯一选择。对于内置了Kestrel服务器的ASP.NET Core站点,在编译发布成功后,将发布目录直接拷贝到服务器上,在打开目录的exe文件就可以实现运行。

由于Kestrel服务器而言它默认监听绑定的地址是http://localhost:5000,这是一个本地访问的地址,所以如果我们要远程访问部署的站点,默认监听的地址显然是不行的,我们必须通过设置一个可以用于远程访问的地址。

配置Kestrel监听的URL目前有五种方式,本文主要介绍一种相对方便的方式进行配置,就是为服务器设置一个名称为:“ASPNETCORE_URLS”的环境变量,并将值设置为:http://0.0.0.0:5000/,其含义代表监听不局限于某个固定IP,使用路由器为服务器分配的IP加上5000端口号就可以访问。

 ASP.NET Core部署手册:3.Windows篇

有关更多配置Kestrel监听URL的方式可详见下面的地址:

1.2.使用.NET CLI命令进行发布

1.打开我们解决方案中启动项目的目录,鼠标右击空白处,在展开的菜单栏中点击“在终端中打开”。

 ASP.NET Core部署手册:3.Windows篇

2.我们使用.NET CLI命令结合控制台的方式编译发布Web站点,在命令行窗口输入以下命令:

dotnet publish --configuration Release -o MyFirstPublish

以上的命令表示我们将代码生成“配置”选项设置为Release模式,以便优化程序集。-o表示将编译发布后的文件存放在项目根目录中的“MyFirstPublish”的文件夹中。

3.输入.NET CLI命令后进行回车,如果执行没有异常且发布的文件成功创建,则表示发布成功。

4.将发布的文件拷贝到服务器的指定目录;

5.打开项目的发布文件夹,在目录下找到后缀为exe的文件(具体文件名和项目的名称一致),双击打开文件以启动Web服务。

ASP.NET Core部署手册:3.Windows篇

6.在浏览器输入:服务器IP地址加ASP.NET Core默认使用的端口号5000,测试站点是否能够正常访问。

 ASP.NET Core部署手册:3.Windows篇

使用自带的Kestrel Web服务器部署运行ASP.NET Core应用,实际操作下来你会发现这种方式非常方便,可以说是ASP.NET Core中最快速的部署方案,但是该方案必须要保证项目的exe程序必须一直启动,如果关闭后我们的站点也会无法启动,所以在生产环境不建议使用该部署方式,不过对于开发演示阶段还是非常适合的。


 

2.方式二:IIS部署Web应用

2.1.安装IIS

本文以Windows Server2012 R2操作系统为例,介绍如何在服务器中安装IIS。

1.在服务管理器窗口点击“角色和功能”;

ASP.NET Core部署手册:3.Windows篇

2.安装类型选择“基于角色或基于功能的安装”,单击下一步;

ASP.NET Core部署手册:3.Windows篇

3.服务器选择“从服务器池中选择服务器”,单击下一步;

ASP.NET Core部署手册:3.Windows篇

4.在选择服务器角色界面勾选“Web服务器IIS”,在弹出的对话框中单击添加功能即可;

 ASP.NET Core部署手册:3.Windows篇

5.在“选择功能”界面勾选.NET Framework 3.5功能和.NET Framework 4.5节点,以及节点下的所有节点;

ASP.NET Core部署手册:3.Windows篇

6.在“选择角色服务”界面中,建议为IIS安装的服务勾选如下选项,勾选后点击下一步;

 ASP.NET Core部署手册:3.Windows篇

7.确认安装

 ASP.NET Core部署手册:3.Windows篇

2.2.使用VS将应用发布到文件夹

在VS中选择待发布的启动项目鼠标右击,在下拉菜单中选择【发布】,在弹出的窗口中会加载出VS目前所支持的发布方式。其中将应用程序发布到本地文件夹,是我们最“熟悉”的配方,从.NET Framework到.Net Core该方式也一直保留,该方式也是目前VS发布中最常用的方式,所以我们延用该方式进行发布,选择后单击下一步。

ASP.NET Core部署手册:3.Windows篇

 选择将项目发布文件存放在哪个目录,这个目录根据个人需求自定义或者使用默认路径即可,单击下一步。

 ASP.NET Core部署手册:3.Windows篇

在选择好发布方式和发布文件的存放路径后,VS会为项目自动生成一个发布配置文件,我们在发布配置文件界面底部点击【显示所有设置】可以进行发布的配置界面。

 ASP.NET Core部署手册:3.Windows篇

下面我们对以上的配置的说明和选择做一个简单的介绍,详见下表:

ASP.NET Core部署手册:3.Windows篇

在配置好发布文件后,单击右上角的【发布】按钮启动发布流程。

ASP.NET Core部署手册:3.Windows篇

2.3.添加IIS网站

在服务器打开IIS管理器,在左侧节点树选择网站节点,右击在菜单中选择【添加网站】,然后在界面中对部署网站进行配置。其中网站名称通常设置为项目名称,IP地址选择未分配则使用服务器当前的IP地址,端口号的选择要确保已开通相应的端口权限,输入完内容后单击【完成】。

ASP.NET Core部署手册:3.Windows篇

在【应用程序池】列表中找到项目对应的应用程序池双击打开,在界面中将.NET CLR版本设置为“无托管代码”

 ASP.NET Core部署手册:3.Windows篇

单击确定后,网站的部署工作已经完成,可以尝试访问站点看是否访问正常。

 ASP.NET Core部署手册:3.Windows篇

如果发布后网站无法访问,可以浏览文章《ASP.NET Core部署手册:注意事项和问题排查》尝试分析。