vlambda博客
学习文章列表

快速搭建.net core并在Linux服务器上运行

.NET Core发展史


  • .NET Core是由Microsoft开发,目前在.NET Foundation(一个非营利的开源组织)下进行管理

  • .NET Core是用C#和C++编写的,并采用MIT协议作为开源协议。第一个版本的.NET Core 1.0是在2016年发布的,功能有限。NET Core 2.0于2017年8月14日发布。在这个版本中发布的两个核心框架是ASP.NET Core2.0和 Entity Framework Core 2.0。

  • 目前最新的.net core 版本为 5.0 


快速搭建.net core并在Linux服务器上运行
快速搭建.net core并在Linux服务器上运行

微软的版本更新一般情况包括测试版本--使用版本--稳定版本。不特定说明外一般情况下.0版本为测试版本。在.0版本之后的0.1版本为一个稳定版本。建议使用2.1 3.1这样的版本。.1版本一般为稳定的LTS官方至少维护3年。

快速搭建.net core并在Linux服务器上运行


快速搭建.net core并在Linux服务器上运行

下面是采用.net core 3.1搭建MVC项目

快速搭建.net core并在Linux服务器上运行
快速搭建.net core并在Linux服务器上运行

快速搭建.net core并在Linux服务器上运行


①  创建一个.net core项目。

本文采用的编辑器为VS 2019,这里需要注意.net core 3.0以上的项目必须使用vs 2019才能创建。



快速搭建.net core并在Linux服务器上运行


快速搭建.net core并在Linux服务器上运行

快速搭建.net core并在Linux服务器上运行


    此时一个完整的.net core 3.1项目就已经搭建好了。但是既然我们创建的是MVC架构,那么我们就需要一个标准的MVC模型:

快速搭建.net core并在Linux服务器上运行

  • Model(模型)表示应用程序核心(比如数据库记录列表)。

  • View(视图)显示数据(数据库记录)。

  • Controller(控制器)处理输入(写入数据库记录)。


手动创建3个文件夹(当然创建项目时也可以自动创建)

快速搭建.net core并在Linux服务器上运行

快速搭建.net core并在Linux服务器上运行

②  写入一个测试页面

IndexController层:

public class IndexController : Controller{ /// <summary> /// 控制器主页面 /// </summary> /// <returns></returns> public IActionResult Index() { return View(); }}

view视图层:

@{ Layout = null;}<!DOCTYPE html><html><head> <meta name="viewport" content="width=device-width" /> <title>主页面</title></head><body> <h2> 当前时间为: @DateTime.Now.ToString("yyyyMMdd dd:mm:ss"); </h2></body></html>




快速搭建.net core并在Linux服务器上运行

现在运行项目你会发现依旧是最初的" hello word "界面,并没有显示我们预定的时间,这是为什么呢?这时你会发现在项目下面有一个Startup.cs类,这是一个至关重要的文件,项目的启动类。其中包含了路由的配置

Startup

  1.  Startup 类配置服务和应用的请求管道。

  2. ASP.NET Core 应用使用 Startup 类,按照约定命名为 Startup。Startup 类:

可选择性地包括 ConfigureServices 方法以配置应用的服务 。 服务是一个提供应用功能的可重用组件。在 ConfigureServices 中注册服务,并通过依赖关系注入 (DI) 或 ApplicationServices 在整个应用中使用服务 。

    3.包括 Configure 方法以创建应用的请求处理管道。

在应用启动时,ASP.NET Core 运行时会调用 ConfigureServices 和 Configure


接下来我们将服务添加到容器中:

/// <summary>/// 此方法由运行时调用。使用此方法可将服务添加到容器中。/// </summary>/// <param name="services"></param>public void ConfigureServices(IServiceCollection services){ services.AddControllersWithViews();}

然后在Configure方法中添加路由

public void Configure(IApplicationBuilder app, IWebHostEnvironment env){ if (env.IsDevelopment()) { app.UseDeveloperExceptionPage();    }    app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Index}/{action=Index}/{id?}" ); });}

路由配置完成现在开始运行项目:

快速搭建.net core并在Linux服务器上运行

此时界面报错了!根据页面提示我们发现创建的视图层有问题,我们创建的视图文件夹为View而实际应该为Views。那么我们要将View文件夹目录名称修改为Views如下

快速搭建.net core并在Linux服务器上运行


此时我们再次运行出现下面的视图说明已经OK了:



快速搭建.net core并在Linux服务器上运行

Linux服务部署


1、首先需要注册该机器的秘钥,每台机器只需要注册一次既可。sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

==注意:1,笔者是虚拟机部署安装的CentOs 7 网络默认没有打开,所以需要配置网络

2、linux用户的权限问题会导致失败,请确保您的当前用户为su用户:可直接 > su

2、sudo yum install dotnet-sdk-3.1这个根据项目需求,笔者此处安装的是 core 3.1sdk

以上第二步可能会消耗一段时间,不妨喝杯茶改改BUG。。。。。。。。

3、查看是否安装成功dotnet --version

如出现以下信息则表示安装成功:

[root@xiaoke]# dotnet --version3.1.0

3.此时linux系统上.net core sdk已经安装完成了。
部署项目:  因为此处我是虚拟机,有界面的linux系统所以我直接拖入或者复制进我的项目:


快速搭建.net core并在Linux服务器上运行


快速搭建.net core并在Linux服务器上运行


快速搭建.net core并在Linux服务器上运行


快速搭建.net core并在Linux服务器上运行

全部拷贝进Linux服务器下的文件夹下,然后执行一下命令:

[root@xiaoke mvc]# dotnet xiaoke.dllHosting environment: ProductionContent root path : /home/xiaoke/mvcNow listening on : http://localhost:57984

在浏览器访问 : http://localhost:57984  出现下面的界面表示部署成功