[.NET跨平臺]Jexus獨立版本的便利與過程當中的一些坑

本文環境與前言

以前寫過一篇相關的文章:在.NET Core以前,實現.Net跨平臺之Mono+CentOS+Jexus初體驗html

當時的部署仍是比較繁瑣的,並且須要聯網下載各類東西..有興趣的能夠看看,可是..已通過時了..linux

雖然已經出了.NET Core2.0 可是目前是預覽版本,並且部署來講 相對比較麻煩.數據庫

今天咱們主要來說講目前的Jexus5.8.2的獨立版本和過程當中遇到的一些小坑ubuntu

部署系統環境:CentOS 6.5 64位(無外網)c#

部署Web應用所用技術:MVC5+EF6.1.3+Autofacide

數據庫:SQL Server 2008R2(注意:數據庫並不在Linux上部署而是在一臺Windows Server上)工具


參考資料:post

https://www.linuxdot.net/bbsfile-4330網站

Jexus - ASP.NET跨平臺從這裏開始!(Jexus官網)url

 

Jexus5.8.2的獨立版所支持的系統:Centos 6.6以上版本,ubuntu server 14.04以上.(ps:我Centos 6.5..也成功了..目前沒問題.)

 

正文

這裏說明一下爲何要用獨立版本.

1.部署方便快捷(這是一開始沒想到的..)

2.沒外網,沒法下載相關資源(這是重點..)

好了,廢話很少說 咱們開始部署過程:

 

1、下載 jexus獨立版的包:

由於我沒有外網,因此直接本地下載,而後拷貝到部署系統

下載地址:https://www.linuxdot.net/down/jexus-5.8.2-x64.tar.gz

 

解壓下載的包:

新手提示:記得進入你壓縮包所在的文件夾在解壓..

tar -zxvf jexus-5.8.2-x64.tar.gz

 

你會獲得一個叫jexus的文件夾

(而後就大功告成了!!,意不意外,驚不驚喜,刺不刺激?..)

↓向下看..↓向下看..↓向下看..

 

 

 

 

 

 

 

 

3、移動文件所在的位置到利於本身維護的地方

上面確實沒忽悠,解壓完了 就真完成了..

不過爲了咱之後維護方便...仍是繼續..

官方建議是移動到/usr文件夾下..嗯 我也就隨大流了..

命令:

sudo mv jexus /usr

 

清理原來的文件,(固然..你用Xftp什麼之類的可視化工具清除和複製..都行.., 這裏用命令我是想是裝個B..)

sudo rm -rf /tmp/jexus*

 

建立目錄,部署Web站點:

於jexus的默認的網站配置文件指向的物理路徑是/var/www/default這裏的.. (固然,你也能夠改)

因此,咱們在/var下建立www文件夾,在www下建立default文件夾

而後複製咱們發佈的文件進去,如圖:

 

重啓一下咱們的Juexs服務:

進入jexus文件夾

cd /usr/jexus

啓動Jexus:

sudo ./jws start

重啓Jexus:

sudo ./jws restart

 

 

6、一些經常使用的Jexus命令:

啓動:sudo ./jws start

重啓:sudo ./jws restart

中止:sudo ./jws stop

啓動某個網站: sudo start 網站名

重啓某個網站:sudo restart 網站名

中止某個網站:sudo stop 網站名

 

至此,咱們的部署工做就算真正的大功告成了!~

以下:

下面講一下坑和注意事項..

 

所遇到的坑與注意事項

1.錯誤信息:System.IO.FileNotFoundException,Could not find find file 'var/www/default\bin\roslyn\csc.exe'

找不到這個roslyn\csc.exe文件..

嗯..這個東西呢..是VS2015改用roslyn編譯的,新的roslyn編譯器,支持c# 6.0語法。它放到bin裏面去是爲了支持Asp.NET應用的動態編譯。

咱們能夠刪除...

進入要項目的nuget引用,刪除以下兩個包:

Microsoft.CodeDom.Providers.DotNetCompilerPlatform

Microsoft.Net.Compilers

從新編譯便可

這裏從新解釋一下,以上是針對Mono5.0如下的版本,Mono5.0已經支持了roslyn編譯器(感謝張善友老師的指導.)

2.AutoFac報錯,信息以下:

..嗯,比較蛋疼,在Autofac注入的時候,報的是個人泛型類型..他居然不識別..說是非泛型..一口老血噴在屏幕上,,,

解決方案是..我發現.當時爲了方便自動注入,我全部的類都繼承了一個空的接口..是非泛型的..包括我這個倉儲也繼承了..

因此在Mono超級無敵的強類型狀況下..被認爲是非泛型的了  - - ..(注意:.NET是沒有這個問題的能夠編譯,能夠運行)

刪除這個繼承,手動注入後.問題解決..

 

3.小驚喜..

以前我那篇文章說過....linux上的文件夾全小寫,你若是有大寫的文件夾好比Js,那麼可能就資源加載不出來 ...404... 須要手動改小寫

可是此次我部署了以後,並無改..也能加載了..不知道是mono作的好事..仍是Jexus..

固然..少了個麻煩固然是很開心的..

這裏也解釋一下,Mono有個環境變量叫:MONO_IOMAP,設置它爲all的時候,就會支持大小寫..

Jexus的jws文件設置中也有這個選項能夠設置.(一樣 感謝張善友老師的指導)

相關文章
相關標籤/搜索