折騰了一天纔算是搞定了這個需求。記錄一下遇到的問題。
主要參照微軟文檔
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