.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.cs?件中
});
}
2、Startup.cs
1. Startup只是?个单纯的类,并没有继承其他类或实现其他接?,通过约定(我感觉是通过反射调?这个类),该类具有
ConfigureServices?法和Configure?法。