本文环境与前言

之前写过一篇相关的文章:在.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

解压下载的包:

新手提示:记得进入你压缩包所在的文件夹在解压..

tar -zxvf jexus-5.8.-x64.tar.gz

你会得到一个叫jexus的文件夹

(然后就大功告成了!!,意不意外,惊不惊喜,刺不刺激?..)

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

三、移动文件所在的位置到利于自己维护的地方

上面确实没忽悠,解压完了 就真完成了..

不过为了咱以后维护方便...还是继续..

官方建议是移动到/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

六、一些常用的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文件设置中也有这个选项可以设置.(同样 感谢张善友老师的指导)

[.NET跨平台]Jeuxs独立版本的便利与过程中的一些坑的更多相关文章

  1. [.NET跨平台]Jexus独立版本的便利与过程中的一些坑

    本文环境与前言 之前写过一篇相关的文章:在.NET Core之前,实现.Net跨平台之Mono+CentOS+Jexus初体验 当时的部署还是比较繁琐的,而且需要联网下载各种东西..有兴趣的可以看看, ...

  2. 用友ERP-U8最新破解(再次更新版本,附安装过程中的解决办法)

    新版用友u8.70下载地址:http://ftp.shangyuchem.com/应用软件/用友ERP-U8管理软件(8.70版).rar 准备好安装环境,因为需要SQLSERVER和IIS支持,而个 ...

  3. java连接mysql数据库8.0以上版本过程中遇到的坑

    来自:https://blog.csdn.net/u013276277/article/details/80255468 首先,我居然不能用navicat客户端连接上mysql8.0数据库报1251错 ...

  4. 记录ubuntu16.04版本安装过程中遇到的问题

    记录ubuntu16.04版本安装和使用过程中遇到的些问题,方便以后查看,主要内容有: 1. ubuntu源替换 2. windows与vmware ubuntu文件夹共享 3. putty连接ubu ...

  5. 现阶段Mono版本下的WebAPI开发中存在的一些问题

    背景 由于公司积极推动各业务产品服务化,得益于容器化技术的不断发展及普及,项目组的服务也更多地基于Mono,Jexus,Docker,Kubernetes等类库.容器.管理工具运行于Linux系统上. ...

  6. cocoapods安装以及使用,安装过程中ruby版本过低

    cocoapods安装以及使用,安装过程中ruby版本过低 字数473 阅读103 评论1 喜欢2 1.打开终端 2.移除现有 Ruby 默认源 $ gem sources --remove http ...

  7. PF2.1版本总结,在设计过程中遇到的问题以及技术分享

    在距离上一次的版本发布已经过去4个月的时间,因为个人的能力以及时间有限,所以这次的版本会推迟这么久.可是无论怎样,PF2.1带着自身的完善总算不负所望推出.在这次的版本调整中让我深有体会到了程序设计中 ...

  8. centos7安装Python3的过程中会和Python2.7版本冲突导致yum版本比对应,致使yum不能使用的问题。

    centos7安装Python3的过程中会和Python2.7版本冲突导致yum版本比对应,致使yum不能使用的问题. 原因:yum调用Python,启动程/usr/bin/yum就是一个python ...

  9. 【Gradle】配置中引用的jar包版本后面自动加冒号导致引入jar包失败的问题/gradle中引用jar包版本不一致的问题/gradle中引用jar失败的问题 解决方法

    idea中 gradle中 引用jar包,版本后面默认加:的问题 gradle中引用jar包版本不一致的问题 gradle中引用jar失败的问题 如上题目所示,三个问题其实都是同一样的简单又恶心,因为 ...

随机推荐

  1. Java常用的八种排序算法与代码实现

    1.直接插入排序 经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中. 将第一个数和第二个数排序,然后构成一个有序序列 将第三个数插入进去,构成一个新的有序序列. 对第四个数.第五个数--直 ...

  2. 初学Java scirpt(判断、循环语句)

    在编写代码时,我们经常需要为不同的判断结果来执行不同的动作以及需要反复执行同一段代码,这时我们就需要使用判断和循环语句来实现. 1.判断语句(if) 判断语句经常用的有(if......else).( ...

  3. js 不要使用new

    (1)不要使用new Array(),new Number, new String, or new Boolean. 等等 如果要新建数组,没有必要使用new Array(),使用[];原因是直观. ...

  4. 对百度WebUploader的二次封装,精简前端代码之图片预览上传(两句代码搞定上传)

    前言 本篇文章上一篇: 对百度WebUploader开源上传控件的二次封装,精简前端代码(两句代码搞定上传) 此篇是在上面的基础上扩展出来专门上传图片的控件封装. 首先我们看看效果: 正文 使用方式同 ...

  5. redis intset(整数集合)

    redis intset (整数集合) 概述 intset 是集合的底层实现结构之一 intset 集合只包含整数 intset 自升级 intset 整数集合是有序的 intset 结构 结构 // ...

  6. xml语法规则

    所有 XML 元素都须有关闭标签 在 HTML,经常会看到没有关闭标签的元素: <p>This is a paragraph <p>This is another paragr ...

  7. Java多线程中线程间的通信

    一.使用while方式来实现线程之间的通信 package com.ietree.multithread.sync; import java.util.ArrayList; import java.u ...

  8. PHP count() 函数

    count() 函数计算数组中的单元数目或对象中的属性个数. 对于数组,返回其元素的个数,对于其他值,返回 1.如果参数是变量而变量没有定义,则返回 0.如果 mode 被设置为 COUNT_RECU ...

  9. Linux下Tomcat进行远程调试

    1.更改tomcat远程调试端口(可以使用默认端口不更改) 打开目录下的catalina.sh文件,找到JPDA_ADDRESS=”8000”,8000代表远程调试端口,可以更改成其他没有被占用的端口 ...

  10. Python之collections序列迭代器下标式循环冒泡算法等

    练习题 元素分类 有如下值集合[11,22,33,44,55,66,77,88,99]将所有大于66的数作为一个列表放在字典的key为k1的value小于等于66的为k2的value {'k1':[7 ...