应用程序配置

在CentOS7服务器中部署.net core项目

发布

右键主项目,发布
image.png
选择框架依赖,我记得在部署到linux的笔记里面写的有框架依赖和独立的区别
image.png

部署

安装环境

[官方]在 Windows 上安装 .NET 下载.NET运行时

找到对应的版本,大版本就行了,.net core 3.1.x.x的选择.net core 3.1随便一个就行了,然后下载这个东西Hosting Bundle
image.png
这个东西,把这个放到Windows服务器上面,运行
image.png
image.png
安装成功后,win+r cmd输入命令,查看是否安装成功

dotnet —info

image.png
安装完成后,需要重启电脑,或者用命令重启iis服务

停止:net stop was /y 启动:net start w3svc

image.png
还可以在iis管理页面重启
image.png

直接运行

在命令行里面设置进入到项目的目录里面

dotnet 项目名.dll

部署到IIS

在传统的.NET Framework中,ASP.NET程序发布到IIS上面,是由IIS的工作进程(w3wp.exe)托管的,在任务管理器中可以找到该进程。在ASP.NET Core程序中不再是由IIS工作进程托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,然后将接收到的请求推送至中间件管道中,处理完请求后在将HTTP响应数据重新回写到IIS中,最终通过IIS转达到不同的客户端。在这过程中,最重要的角色便是AspNetCoreModuleV2(asp.net core 2.0以前版本中是AspNetCoreModuleV2,asp.net core 2.x版本是AspNetCoreModule,从3.0开始又改回了AspNetCoreModuleV2),它是IIS中的一个模块,HTTP请求进入到IIS之后便立即由它转发,并迅速重定向到ASP.NET Core项目中。因为IIS只是作为反向代理负责转发请求,不负责监听HTTP请求端口,所以不需要使用应用程序池来托管我们的代码。

在IIS管理面板里面能看到一个模块
image.png
点进入,能看到这个
image.png
接下来把发布好的项目,拷贝到服务器上面,发布的那个publish文件夹

右键网站,添加网站
image.png
物理路径就是项目拷贝上去的那个publish,这个文件夹一进去就能看到一片文件,最终就是通过这里设置ip+端口来进行访问,当然云服务器厂商要打开这个端口才行。
image.png

在ASP.NET Core 3.x以前版本中,部署完网站之后,我们还需要设置应用程序池,将.NET CLR版本设置为“无托管代码”,在ASP.NET Core 3.x开始的版本中,无需在设置应用程序池,部署完网站之后就可以直接访问了。我们也可以设置应用程序池为“无托管代码”

在应用进程池,右键对应的项目,基本设置
image.png
image.png

连接本地的SQL Server数据库

需要在应用程序池里面,找到项目的应用程序池,然后右边的高级设置,把标识改成这样
image.png

注意

有API Swagger的注释了,上线的项目不能展示API文档,打包发布项目也不给你发布.xml文件。