關於如何在Linux中添加ASP.NET Core運行時環境請參考我的上一篇文章,本文章將不再做贅述。
本文章運行環境如下:
(1) 安裝獨立版Jexus
本教程安裝的是獨立版的Jexus,獨立版的Jexus自帶Mono,使用的是Mono的穩定版本4.8。安裝 Jexus 直接使用一下命令即可(需要在root身份下執行):
curl https://jexus.org/release/x64/install.sh|sh
安裝成功后會提示:OK, Jexus has been installed in /usr/jexus.
(2)創建一個ASP.NET Core應用
我們按照微軟官方的ASP.NET Core文檔新建一個ASP.NET Core MVC應用,輸入如下命令
dotnet new mvc -o aspnetcoreapp // 在當前目錄下創建一個MVC Web應用
注意:此處可能會拋出Warn:“Unable to bind to http://localhost:5000 on the IPv6 loopback interface: 'Error -99 EADDRNOTAVAIL address not available'”。微軟的解決方案: https://github.com/aspnet/KestrelHttpServer/issues/2117
我嘗試使用 ASPNETCORE_URLS=" http://*:5000" dotnet run 替代 dotnet run 命令在特定的情況下可以解決此類問題

完美解決方案:在Program.cs類 BuildWebHost方法中 添加指定的端口

然后執行 dotnet run 命令即可完美解決此問題。

(3)生成ASP.NET Core部署文件
我們將部署文件存放在 /var/www/aspnetcore 目錄下
命令如下:
mkdir -p /var/www/aspnetcore //新建目錄
cd /home/aspnetcoreapp/ //定位到項目工程下
dotnet publish -o /var/www/aspnetcore //將項目工程發布在指定目錄下
發布后目錄結構如下:

因為這是一個空的項目工程,所以我們將項目工程中的視圖部分復制到部署目錄中
我們來測試一下,部署工程是否運行正常
執行如下命令
dotnet /var/www/aspnetcore/aspnetcoreapp.dll
測試正常,至此,我們已完成部署結構,稍后我們將在Jexus上部署運行此工程。
(4)在Jexus 上部署 ASP.NET Core項目工程
Jexus 中 一個配置文件對應一個網站,因為我們需要新建一個ASP.NET Core網站的配置文件
運行如下命令:
cd /usr/jexus/siteconf //定位到Jexus網站配置文件目錄
cp default aspnetcore //復制Jexus 提供的默認配置模版(這年頭誰手寫?)
vi aspnetcore //打開我們新建的網站配置文件,然后修改如下內容(這是命令行修改,比較麻煩,忍忍就好了)
OK,我們已經完成了ASP.NET Core網站的配置文件,下一步讓我們把配置文件的默認模板干掉把
rm -rf /usr/jexus/siteconf/default //干掉默認的配置模板
然后,讓我們啟動Jexus,看一下效果
如果你的Jexus已經啟動,運行如下命令
sh /usr/jexus/jws restart //重啟Jexus
如果你的Jexus是停止狀態,運行如下命令
sh /usr/jexus/jws start //啟動Jexus
附贈送停止命令
sh /usr/jexus/jws stop //停止Jexus
讓我們看一下效果吧.