[.NET跨平台]Jexus独立版本的便利与过程中的一些坑
本文環(huán)境與前言
之前寫過(guò)一篇相關(guān)的文章:在.NET Core之前,實(shí)現(xiàn).Net跨平臺(tái)之Mono+CentOS+Jexus初體驗(yàn)
當(dāng)時(shí)的部署還是比較繁瑣的,而且需要聯(lián)網(wǎng)下載各種東西..有興趣的可以看看,但是..已經(jīng)過(guò)時(shí)了..
雖然已經(jīng)出了.NET Core2.0 但是目前是預(yù)覽版本,而且部署來(lái)說(shuō) 相對(duì)比較麻煩.
今天我們主要來(lái)講講目前的Jexus5.8.2的獨(dú)立版本和過(guò)程中遇到的一些小坑
部署系統(tǒng)環(huán)境:CentOS 6.5 64位(無(wú)外網(wǎng))
部署Web應(yīng)用所用技術(shù):MVC5+EF6.1.3+Autofac
數(shù)據(jù)庫(kù):SQL Server 2008R2(注意:數(shù)據(jù)庫(kù)并不在Linux上部署而是在一臺(tái)Windows Server上)
參考資料:
https://www.linuxdot.net/bbsfile-4330
Jexus?- ASP.NET跨平臺(tái)從這里開(kāi)始!(Jexus官網(wǎng))
?
Jexus5.8.2的獨(dú)立版所支持的系統(tǒng):Centos 6.6以上版本,ubuntu server 14.04以上.(ps:我Centos 6.5..也成功了..目前沒(méi)問(wèn)題.)
?
正文
這里說(shuō)明一下為什么要用獨(dú)立版本.
1.部署方便快捷(這是一開(kāi)始沒(méi)想到的..)
2.沒(méi)外網(wǎng),無(wú)法下載相關(guān)資源(這是重點(diǎn)..)
好了,廢話不多說(shuō) 我們開(kāi)始部署過(guò)程:
?
一、下載?jexus獨(dú)立版的包:
因?yàn)槲覜](méi)有外網(wǎng),所以直接本地下載,然后拷貝到部署系統(tǒng)
下載地址:https://www.linuxdot.net/down/jexus-5.8.2-x64.tar.gz
?
二、解壓下載的包:
新手提示:記得進(jìn)入你壓縮包所在的文件夾在解壓..
tar -zxvf jexus-5.8.2-x64.tar.gz?
你會(huì)得到一個(gè)叫jexus的文件夾
(然后就大功告成了!!,意不意外,驚不驚喜,刺不刺激?..)
↓向下看..↓向下看..↓向下看..?
?
三、移動(dòng)文件所在的位置到利于自己維護(hù)的地方:
上面確實(shí)沒(méi)忽悠,解壓完了 就真完成了..
不過(guò)為了咱以后維護(hù)方便...還是繼續(xù)..
官方建議是移動(dòng)到/usr文件夾下..嗯 我也就隨大流了..
命令:
sudo mv jexus /usr?清理原來(lái)的文件,(當(dāng)然..你用Xftp什么之類的可視化工具清除和復(fù)制..都行.., 這里用命令我是想是裝個(gè)B..)
sudo rm -rf /tmp/jexus*?
四、創(chuàng)建目錄,部署Web站點(diǎn):
于jexus的默認(rèn)的網(wǎng)站配置文件指向的物理路徑是/var/www/default這里的.. (當(dāng)然,你也可以改)
所以,我們?cè)?var下創(chuàng)建www文件夾,在www下創(chuàng)建default文件夾
然后復(fù)制我們發(fā)布的文件進(jìn)去,如圖:
?
五、重啟一下我們的Juexs服務(wù):
進(jìn)入jexus文件夾
cd /usr/jexus啟動(dòng)Jexus:
sudo ./jws start重啟Jexus:
sudo ./jws restart??
六、一些常用的Jexus命令:
?
至此,我們的部署工作就算真正的大功告成了!~
如下:
下面講一下坑和注意事項(xiàng)..
?
所遇到的坑與注意事項(xiàng)
1.錯(cuò)誤信息:System.IO.FileNotFoundException,Could not find find file 'var/www/default\bin\roslyn\csc.exe'
找不到這個(gè)roslyn\csc.exe文件..
嗯..這個(gè)東西呢..是VS2015改用roslyn編譯的,新的roslyn編譯器,支持c# 6.0語(yǔ)法。它放到bin里面去是為了支持Asp.NET應(yīng)用的動(dòng)態(tài)編譯。
我們可以刪除...
進(jìn)入要項(xiàng)目的nuget引用,刪除如下兩個(gè)包:
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Microsoft.Net.Compilers
重新編譯即可
這里重新解釋一下,以上是針對(duì)Mono5.0以下的版本,Mono5.0已經(jīng)支持了roslyn編譯器(感謝張善友老師的指導(dǎo).)
2.AutoFac報(bào)錯(cuò),信息如下:
..嗯,比較蛋疼,在Autofac注入的時(shí)候,報(bào)的是我的泛型類型..他竟然不識(shí)別..說(shuō)是非泛型..一口老血噴在屏幕上,,,
解決方案是..我發(fā)現(xiàn).當(dāng)時(shí)為了方便自動(dòng)注入,我所有的類都繼承了一個(gè)空的接口..是非泛型的..包括我這個(gè)倉(cāng)儲(chǔ)也繼承了..
所以在Mono超級(jí)無(wú)敵的強(qiáng)類型情況下..被認(rèn)為是非泛型的了 ?- - ..(注意:.NET是沒(méi)有這個(gè)問(wèn)題的可以編譯,可以運(yùn)行)
刪除這個(gè)繼承,手動(dòng)注入后.問(wèn)題解決..
?
3.小驚喜..
之前我那篇文章說(shuō)過(guò)....linux上的文件夾全小寫,你如果有大寫的文件夾比如Js,那么可能就資源加載不出來(lái) ...404... 需要手動(dòng)改小寫
但是這次我部署了之后,并沒(méi)有改..也能加載了..不知道是mono做的好事..還是Jexus..
當(dāng)然..少了個(gè)麻煩當(dāng)然是很開(kāi)心的..
這里也解釋一下,Mono有個(gè)環(huán)境變量叫:MONO_IOMAP,設(shè)置它為all的時(shí)候,就會(huì)支持大小寫..
Jexus的jws文件設(shè)置中也有這個(gè)選項(xiàng)可以設(shè)置.?
原文地址:http://www.cnblogs.com/GuZhenYin/p/6932237.html
.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺(tái)或掃描二維碼關(guān)注
總結(jié)
以上是生活随笔為你收集整理的[.NET跨平台]Jexus独立版本的便利与过程中的一些坑的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [翻译]编写高性能 .NET 代码 第一
- 下一篇: 码农不重视文档:开源项目深受其苦