linux .net core 发布 需要注意的事项
一. 环境
系统:linux ContOS 7
环境:.net Core 2.1
服务器 : nginx 1.18
二. 发布需要注意的
1.配置发布设置
选择“目标运行时的时候,如果是linux ContOS系统的话,请选择可移植,如果直接使用,更新dll之后,内容也不会有变化。”
2.发布项目,把打包好的项目提交到linux服务器,/www/wwwroot/HxCrm/ 文件夹下。(HxCrm是项目名称)
3.执行 cd /www/wwwroot/HxCrm
4.执行 dotnet HxCrm.dll
Hosting environment: Production
Content root path: /www/wwwroot/HxCrm
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
5.执行 curl http:localhost:5000 本地测试
6.在Program.cs中修改CreateWebHostBuilder
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>().ConfigureLogging(log=> {
Trace.Listeners.Clear();
//日志路径
string path = Path.Combine(Directory.GetCurrentDirectory(), "Log");
var trace = new FileTraceListener(path);
Trace.Listeners.Add(trace);
}).UseUrls("http://*:5000");//如果使用http那只填写http,不要填写https的
7.重新打包,替换dll,然后执行
Hosting environment: Production
Content root path: /www/wwwroot/HxCrm
Now listening on: http://[::]:5000
Application started. Press Ctrl+C to shut down.
8.通过服务器的IP访问这个地址,http://IP:5000,然后就发布成功了
9.但是通过dotnet HxCrm.dll命令的话,不能关闭XSell,一关闭就网站就停止运行了
10.执行 nohup dotnet Hx_Crm.dll >/dev/null 2>&1 & (这个命令里边有个&,不能忘记),程序会直接进入到后台运行。
//执行完,会出现这么一句话,不用理会,直接回车跳过就行
# nohup: 忽略输入并把输出追加到"nohup.out"
>/dev/null 2>&1 & 不填写这个参数,会在当前文件夹下生成一个nohup.out的文件
在当前文件夹下会生成一个nohup.out文件,之后的所有日志都会写入其中
11.关闭nohup命令
// 执行 获取Hx_Crm.dll的PID
ps aux | grep Hx_Crm.dll ('Hx_Crm.dll '项目的名字)
kill -9 PID //直接杀死该程序
12.定期执行程序的命令
crontab -e
* * * * * /usr/bin/curl http://localhost:81/ExternalApi/QuerySms_Stats
* * * * * 命令
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)