.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

 

posted on 2022-04-29 09:28  michellexiaoqi  阅读(816)  评论(0编辑  收藏  举报