.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)
查看日志Could not find file '/home/user/YGPDGSAPI/YGPDGSAPI.xml'.
四、项目文件
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<Startup>();
})
这种写法(箭头函数)等价于:
public static IHostBuilder CreateHostBuilder(string[] args)
{
return Host.CreateDefaultBuilder(args)//创建⼀个服务器Builder对象
.ConfigureWebHostDefaults(webBuilder =>//ConfigureWebHostDefault⽅法对Web服务器进⾏默认设置
//该函数的参数是⼀个委托(Action<T>是⼀个可以传⼊参数,没有返回值的委托),函数可以接收⼀个
//IWebHostBuilder类型的参数webBuilder,通过调⽤该对象的相关⽅法可以实现对配置的修改
{
webBuilder.UseStartup<Startup>();//使⽤名为"Startup"的类作为Startup(配置),意味着我们可以将更多的
//配置写在Startup.cs⽂件中
});
}
2、Startup.cs
1. Startup只是⼀个单纯的类,并没有继承其他类或实现其他接⼝,通过约定(我感觉是通过反射调⽤这个类),该类具有
ConfigureServices⽅法和Configure⽅法。
返回 结果
200 成功
204 返问是正确,结果为null
300
304