折腾了一天才算是搞定了这个需求。记录一下遇到的问题。
主要参照微软文档
https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-package-manager-debian10
dotnet run
只能用于项目运行目录,也就是开发环境。发布后的程序的生产环境无效。
生产环境 使用命令
dotnet AspNetCore3Mvc.dll
指定端口用
dotnet AspNetCore3Mvc.dll --urls http://*:3000
注意坑1:
不可用 --urls http://localhost:3000 否则本地可以访问,但远程无法访问,http://127.0.0.1:3000也不行,不懂是什么原因,
当然如果后面本机装 nginx 反向代理,应该就不存在此问题了。
在vs 中 weburl 是不能这样填的(vs2019)
注意坑2:
命令要在程序所在目录执行,否则导至的后果是 content root path 变成命令执行的当前目录,那么wwwroot 下的静态文件将无法访问到,则页面呈现样式丢失等现像。尝试找通过参数指定工作目录,无果。
如果后面用Supervisor 配置为守护进程 会有一个工作目录设定,也不存在此问题了,但需注意 dll 文件要使用全路径。
置为服务自启用使用:Supervisor 配置为守护进程,参考文章:https://www.cnblogs.com/savorboard/p/dotnetcore-supervisor.html