[.NET跨平台]Jexus独立版本的便利与过程中的一些坑
2017-06-03 07:18
260 查看
本文环境与前言
之前写过一篇相关的文章:在.NET Core之前,实现.Net跨平台之Mono+CentOS+Jexus初体验
当时的部署还是比较繁琐的,而且需要联网下载各种东西..有兴趣的可以看看,但是..已经过时了..
虽然已经出了.NET Core2.0 但是目前是预览版本,而且部署来说 相对比较麻烦.
今天我们主要来讲讲目前的Jexus5.8.2的独立版本和过程中遇到的一些小坑
部署系统环境:CentOS 6.5 64位(无外网)
部署Web应用所用技术:MVC5+EF6.1.3+Autofac
数据库:SQL Server 2008R2(注意:数据库并不在Linux上部署而是在一台Windows Server上)
参考资料:
https://www.linuxdot.net/bbsfile-4330
Jexus - ASP.NET跨平台从这里开始!(Jexus官网)
Jexus5.8.2的独立版所支持的系统:Centos 6.6以上版本,ubuntu server 14.04以上.(ps:我Centos 6.5..也成功了..目前没问题.)
正文
这里说明一下为什么要用独立版本.
1.部署方便快捷(这是一开始没想到的..)
2.没外网,无法下载相关资源(这是重点..)
好了,废话不多说 我们开始部署过程:
一、下载 jexus独立版的包:
因为我没有外网,所以直接本地下载,然后拷贝到部署系统
下载地址:https://www.linuxdot.net/down/jexus-5.8.2-x64.tar.gz
二[b]、解压下载的包:[/b]
新手提示:记得进入你压缩包所在的文件夹在解压..
你会得到一个叫jexus的文件夹
(然后就大功告成了!!,意不意外,惊不惊喜,刺不刺激?..)
↓向下看..↓向下看..↓向下看..
[b]三、移动文件所在的位置到利于自己维护的地方:[/b]
上面确实没忽悠,解压完了 就真完成了..
不过为了咱以后维护方便...还是继续..
官方建议是移动到/usr文件夹下..嗯 我也就随大流了..
命令:
清理原来的文件,(当然..你用Xftp什么之类的可视化工具清除和复制..都行.., 这里用命令我是想是装个B..)
四[b]、创建目录,部署Web站点:[/b]
于jexus的默认的网站配置文件指向的物理路径是/var/www/default这里的.. (当然,你也可以改)
所以,我们在/var下创建www文件夹,在www下创建default文件夹
然后复制我们发布的文件进去,如图:
五[b]、重启一下我们的Juexs服务:[/b]
进入jexus文件夹
启动Jexus:
重启Jexus:
六、一些常用的Jexus命令:
至此,我们的部署工作就算真正的大功告成了!~
如下:
下面讲一下坑和注意事项..
所遇到的坑与注意事项
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编译器([b]感谢张善友老师的指导.)[/b]
2.AutoFac报错,信息如下:
..嗯,比较蛋疼,在Autofac注入的时候,报的是我的泛型类型..他竟然不识别..说是非泛型..一口老血喷在屏幕上,,,
解决方案是..我发现.当时为了方便自动注入,我所有的类都继承了一个空的接口..是非泛型的..包括我这个仓储也继承了..
所以在Mono超级无敌的强类型情况下..被认为是非泛型的了 - - ..(注意:.NET是没有这个问题的可以编译,可以运行)
删除这个继承,手动注入后.问题解决..
3.小惊喜..
之前我那篇文章说过....linux上的文件夹全小写,你如果有大写的文件夹比如Js,那么可能就资源加载不出来 ...404... 需要手动改小写
但是这次我部署了之后,并没有改..也能加载了..不知道是mono做的好事..还是Jexus..
当然..少了个麻烦当然是很开心的..
这里也解释一下,Mono有个环境变量叫:MONO_IOMAP,设置它为all的时候,就会支持大小写..
Jexus的jws文件设置中也有这个选项可以设置.
原文地址:http://www.cnblogs.com/GuZhenYin/p/6932237.html
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注
之前写过一篇相关的文章:在.NET Core之前,实现.Net跨平台之Mono+CentOS+Jexus初体验
当时的部署还是比较繁琐的,而且需要联网下载各种东西..有兴趣的可以看看,但是..已经过时了..
虽然已经出了.NET Core2.0 但是目前是预览版本,而且部署来说 相对比较麻烦.
今天我们主要来讲讲目前的Jexus5.8.2的独立版本和过程中遇到的一些小坑
部署系统环境:CentOS 6.5 64位(无外网)
部署Web应用所用技术:MVC5+EF6.1.3+Autofac
数据库:SQL Server 2008R2(注意:数据库并不在Linux上部署而是在一台Windows Server上)
参考资料:
https://www.linuxdot.net/bbsfile-4330
Jexus - ASP.NET跨平台从这里开始!(Jexus官网)
Jexus5.8.2的独立版所支持的系统:Centos 6.6以上版本,ubuntu server 14.04以上.(ps:我Centos 6.5..也成功了..目前没问题.)
正文
这里说明一下为什么要用独立版本.
1.部署方便快捷(这是一开始没想到的..)
2.没外网,无法下载相关资源(这是重点..)
好了,废话不多说 我们开始部署过程:
一、下载 jexus独立版的包:
因为我没有外网,所以直接本地下载,然后拷贝到部署系统
下载地址:https://www.linuxdot.net/down/jexus-5.8.2-x64.tar.gz
二[b]、解压下载的包:[/b]
新手提示:记得进入你压缩包所在的文件夹在解压..
tar -zxvf jexus-5.8.2-x64.tar.gz
你会得到一个叫jexus的文件夹
(然后就大功告成了!!,意不意外,惊不惊喜,刺不刺激?..)
↓向下看..↓向下看..↓向下看..
[b]三、移动文件所在的位置到利于自己维护的地方:[/b]
上面确实没忽悠,解压完了 就真完成了..
不过为了咱以后维护方便...还是继续..
官方建议是移动到/usr文件夹下..嗯 我也就随大流了..
命令:
sudo mv jexus /usr
清理原来的文件,(当然..你用Xftp什么之类的可视化工具清除和复制..都行.., 这里用命令我是想是装个B..)
sudo rm -rf /tmp/jexus*
四[b]、创建目录,部署Web站点:[/b]
于jexus的默认的网站配置文件指向的物理路径是/var/www/default这里的.. (当然,你也可以改)
所以,我们在/var下创建www文件夹,在www下创建default文件夹
然后复制我们发布的文件进去,如图:
五[b]、重启一下我们的Juexs服务:[/b]
进入jexus文件夹
cd /usr/jexus
启动Jexus:
sudo ./jws start
重启Jexus:
sudo ./jws restart
六、一些常用的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编译器([b]感谢张善友老师的指导.)[/b]
2.AutoFac报错,信息如下:
..嗯,比较蛋疼,在Autofac注入的时候,报的是我的泛型类型..他竟然不识别..说是非泛型..一口老血喷在屏幕上,,,
解决方案是..我发现.当时为了方便自动注入,我所有的类都继承了一个空的接口..是非泛型的..包括我这个仓储也继承了..
所以在Mono超级无敌的强类型情况下..被认为是非泛型的了 - - ..(注意:.NET是没有这个问题的可以编译,可以运行)
删除这个继承,手动注入后.问题解决..
3.小惊喜..
之前我那篇文章说过....linux上的文件夹全小写,你如果有大写的文件夹比如Js,那么可能就资源加载不出来 ...404... 需要手动改小写
但是这次我部署了之后,并没有改..也能加载了..不知道是mono做的好事..还是Jexus..
当然..少了个麻烦当然是很开心的..
这里也解释一下,Mono有个环境变量叫:MONO_IOMAP,设置它为all的时候,就会支持大小写..
Jexus的jws文件设置中也有这个选项可以设置.
原文地址:http://www.cnblogs.com/GuZhenYin/p/6932237.html
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注
相关文章推荐
- [.NET跨平台]Jexus独立版本的便利与过程中的一些坑
- .net平台借助第三方推送服务在推送Android,IOS消息(极光推送_V3版本)最新
- Tangram商业版本预览(七):MFC/COM/.NET对象的集成、组合平台
- .net版本名字的一些记录
- 一些tip,如何检测是否安装.net及其版本
- .Net语言 APP开发平台Smobiler3.1版本新增了大量的控件
- Cocos2dx:cocos2d-x-3.2版本学习过程中所遇到的一些问题(每一次都是一次作死的感觉)
- Cocos2dx:cocos2d-x-3.2版本学习过程中所遇到的一些问题
- 偶对学习C#以及理解.Net平台的一些看法(二,Junior Bibliography)
- .Net 平台下的版本控制 --- Subversion(SVN)1.6.x
- 在.Net平台开发Wap的一些记录
- Cocos2dx-3.0版本 从开发环境搭建(Win32)到项目移植Android平台过程详解
- 详解cocos2dx 3.0的release版本在android平台的签名过程
- JAVA和.NET开发过程中的一些不同
- 上传到了一些源码、很多人下载了、我很不明白有的人为什么要乱讲话--瓦特平台.代码生成器分享最新版本源码下载
- Java和.NET开发过程中的一些不同
- .Net语言 APP开发平台Smobiler3.2版本将于八月中旬发布!——3.2版本预告(一)
- .NET Framework 3.5 体系结构 -- .Net 平台的发展过程
- .NET平台下的一些工具
- 在.Net平台开发Wap的一些记录