以前寫過一篇相關的文章:在.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文件設置中也有這個選項能夠設置.(一樣 感謝張善友老師的指導)