前言
本文将介绍Net Core的一些基础知识和如何NginX下发布Net Core的WebApi项目。
测试环境
操作系统:windows 10 开发工具:visualstudio 2019 框架:Net Core 3Net Core WebApi项目创建
首先创建一个Net Core WebApi项目——CorePublishForNginX。
首先选择Asp.Net Core Web应用程序,如下图:

然后修改项目名称,如下图:

然后选择Api选项,如下图:

项目创建完成,如下图:

代码介绍
Controller
项目创建完成后,我们可以看到,里面内置了一个Api Controller——WeatherForecastController,代码如下:
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
private static readonly string[] Summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
private readonly ILogger<WeatherForecastController> _logger;
public WeatherForecastController(ILogger<WeatherForecastController> logger)
{
_logger = logger;
}
[HttpGet]
public IEnumerable<WeatherForecast> Get()
{
var rng = new Random();
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateTime.Now.AddDays(index),
TemperatureC = rng.Next(-20, 55),
Summary = Summaries[rng.Next(Summaries.Length)]
})
.ToArray();
}
}
如上述代码所示,首先我们看到该Controller继承的类是ControllerBase。(在NetFramework里继承的WebApi继承的是ApiController,Mvc继承的是Controller)
然后,我们发现Controller有一个构造函数,并且还有一个入参;我们知道Controller的调用是框架的内部机制,也就是说,框架在调用Controller时会给他一个入参。
通过名称我们可以发现,这个是一个日志入参,即,Core调用Controller时,为我们内置了一个日志记录对象。
这里我们不需要使用日志,所以可以先把这个构造函数删除。
接下来,我们看到了Api请求实现的主体,Get请求。
主体现的很简单,就是方法名用Get,然后方法头上加HttpGet特性。(Get方法名是可以修改的,因为一个WebApi里只支持一个Get请求,所以只要方法加了HttpGet特性,就会被视为默认的Get方法)
Get请求里实现了一个实体集合的组件,即请求该Controller会得到一个实体集合的数组。
Program
学习完Controller,我们进入Program.cs文件,我们做下简单的修改,设置一下Kestrel的启动端口。








