.net core webapi


一、创建web API项目

 

1) 启用openAIP支持是开启swagger页面

2)无需启用https

HTTP与HTTPS的区别

 二、发布

1、不能直接把bin/Debug部署到生产环境的服务器上,性能低。应该创建网站的发布版,用【发布】功能。

2、两种部署模式,“框架依赖”和“独立”。两者的优缺点。

  •  框架依赖需要服务器上安装.net 运行时

3、独立模式为什么要选目标操作系统和CPU类型。关于龙芯。

发布前删除所有现有文件,可以避免有未发布最新的文件 

 三、部署在linux 

1)首先利用xftp将发布的文件上传linux服务器

2)利用shell

1) cd /home/user/YGPDGSAPI  //进入所在目录

2)ls 显示文件

3)dotnet YGPDGSAPI.dll  启用进程,但shell也会关闭

 nohup dotnet YGPDGSAPI.dll  控制台关闭也不会停止

4)停止进程

ps -ef | grep YGPDGSAPI.dll

kill pid 

Linux 查看进程的PID

四、项目文件

1、Program.cs

1. Main?法是程序的??
程序运?时?先执?的是Program类中的Main?法
我们来看Main?法的代码

public static void Main(string[] args) //该?法是?个静态?法,参数args可以在通过控制台启动它时传?
//常见的args参数使??法:如程序在开发环境和?产环境(实际使?的环境)需要读取不同的配置?件,我们就可以
//规定args的第?个参数如果为"dev"则读取开发环境使?的配置appsettings.dev.json 如果为"prod" 则使?正式的
//appsettings.json配置?件。
{
CreateHostBuilder(args).Build().Run();//创建?个服务器(.net core 内置?个服务器Kestrel)并运?,
//CreateHostBuilder?法?于创建该服务器(底下定义的,放回类型为IHostBuilder),Build()?法则是创建(获得
//实例),Run()?法为启动这个服务器,开始监听。
}

2. Kestrel服务器的配置与启动
前?我们提到了.net core中内置了?个Kestrel服务器,该服务器是?个基于libuv的跨平台ASP.NET Core web服务器,libuv是?个
跨平台的异步I/O库。ASP.NET Core模板项?使?Kestrel作为默认的web服务器。Main?法所执?的代码就是创建并启动该服务
器。它调?了?个CreateHostBuilder?法,该?法需要返回?个IHostBuilder类型的对象(IHostBuilder是?个接?,不是实际的
类型,为了?便理解我们就暂且这么说),因此系统帮我们在Program类中??成了?个默认的?法,代码如下

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup();
})

这种写法(箭头函数)等价于:

public static IHostBuilder CreateHostBuilder(string[] args)
{
return Host.CreateDefaultBuilder(args)//创建?个服务器Builder对象
.ConfigureWebHostDefaults(webBuilder =>//ConfigureWebHostDefault?法对Web服务器进?默认设置
//该函数的参数是?个委托(Action是?个可以传?参数,没有返回值的委托),函数可以接收?个
//IWebHostBuilder类型的参数webBuilder,通过调?该对象的相关?法可以实现对配置的修改
{
webBuilder.UseStartup();//使?名为"Startup"的类作为Startup(配置),意味着我们可以将更多的
//配置写在Startup.cs?件中
});
}

2、Startup.cs

1. Startup只是?个单纯的类,并没有继承其他类或实现其他接?,通过约定(我感觉是通过反射调?这个类),该类具有
ConfigureServices?法和Configure?法。

C