Mono+Jexus让C#运行在Linux(centos7_x64),学习笔记

时间:2022-04-20 08:01:22

本篇目录

前言

感谢:

http://www.jexus.org/

http://www.cnblogs.com/shanyou/archive/2012/01/07/2315982.html

http://www.cnblogs.com/hanyinglong/p/5456757.html

http://www.jb51.net/article/83550.htm

http://www.cnblogs.com/hanyinglong/p/5456757.html

http://bbs.csdn.net/topics/390944302

环境准备

虚拟机:VMware-workstation-full-11.0.0-2305329_0;

Linux系统:CentOS-7-x86_64-DVD-1511.iso;

Visual Studio 2013:创建默认ASP.NET MVC 4 Web 应用程序;

Linux连接工具:SecureCRT;

Linux下环境准备

更新系统

可以跳过,有四百多条更新。

yum –y update

安装Mono源码安装需要的库

yum -y install gcc gcc-c++ bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-devel libtiff-devel libexif-devel giflib-devel libX11-devel freetype-devel fontconfig-devel  cairo-devel

Mono+Jexus让C#运行在Linux(centos7_x64),学习笔记

安装Mono需要的GDI+兼容API的库Libgdiplus

cd /usr/local/src/

libgdiplus下载地址,当前最新版本libgdiplus-4.2.tar.gz | 2015-12-20 17:33 | 671K

wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-4.2.tar.gz

tar -zxvf libgdiplus-4.2.tar.gz

cd libgdiplus-4.2

./configure --prefix=/usr

make && make install

安装 mono

cd /usr/local/src/

mono下载地址,当前最新版本mono-4.6.2.6.tar.bz2 | 2016-11-02 14:22 | 79M

wget http://download.mono-project.com/sources/mono/mono-4.6.2.6.tar.bz2

tar -jxvf mono-4.6.2.6.tar.bz2

cd mono-4.6.2

./configure --prefix=/usr

make这步的时间稍微比较久点。

make && make install

安装完后使用mono -V查看版本信息。

Mono+Jexus让C#运行在Linux(centos7_x64),学习笔记

Jexus安装

cd /usr/local/src/

Jexus下载地址,当前最新版本jexus-5.8.1.tar.gz

wget http://www.linuxdot.net/down/jexus-5.8.1.tar.gz

tar -zxvf jexus-5.8.1.tar.gz

cd jexus-5.8.1

./install

启动命令。

/usr/jexus/jws start

Mono+Jexus让C#运行在Linux(centos7_x64),学习笔记

启动成功后通过http://localhost/info访问到如下页面。

Mono+Jexus让C#运行在Linux(centos7_x64),学习笔记

至此环境准备工作完成。

部署ASP.NET MVC项目

Jexus配置

cd /usr/jexus/siteconf/

cp default simple

赋值默认配置修改port、root。

Mono+Jexus让C#运行在Linux(centos7_x64),学习笔记

配置修改完成后到/var目录下创建www文件夹。

cd /var

mkdir www

VS2013创建MVC项目打包发布

使用SecureFX将打包文件夹simple上传至/var/www/simple目录。

Mono+Jexus让C#运行在Linux(centos7_x64),学习笔记

将jexus停止后重新启动

/usr/jexus/jws stop

/usr/jexus/jws start

启动成功后通过http://localhost/info访问出现如下错误信息。

Mono+Jexus让C#运行在Linux(centos7_x64),学习笔记

将Web.config文件内容替换成如下信息重新上传。

<?xml version="1.0" encoding="utf-8"?>
<!--
有关如何配置 ASP.NET 应用程序的详细信息,请访问
http://go.microsoft.com/fwlink/?LinkId=169433
--> <configuration>
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-1.3.0.0" newVersion="1.3.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" /> <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> <system.web> <customErrors mode="Off"/>
<pages>
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
</namespaces>
</pages>
</system.web> <system.webServer>
<validation validateIntegratedModeConfiguration="false" /> <handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers></system.webServer>
</configuration>

/usr/jexus/jws restart

log4net引用到项目中。

重新启动后刷新能访问显示如下,但是样式信息未应用。这是因为Linux下是区分大小写的,需要配置jexus。

Mono+Jexus让C#运行在Linux(centos7_x64),学习笔记

cd /usr/jexus/

vi jws

取消# export MONO_IOMAP="all"这段内容的前面的#,保存,然后重新启动jexus。

Mono+Jexus让C#运行在Linux(centos7_x64),学习笔记

重启jws后,重新访问结果。

Mono+Jexus让C#运行在Linux(centos7_x64),学习笔记

总结

没写完。

Mono+Jexus让C#运行在Linux(centos7_x64),学习笔记的更多相关文章

  1. Linux内核学习笔记-2&period;进程管理

    原创文章,转载请注明:Linux内核学习笔记-2.进程管理) By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...

  2. Linux内核学习笔记-1&period;简介和入门

    原创文章,转载请注明:Linux内核学习笔记-1.简介和入门 By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...

  3. Linux内核学习笔记二——进程

    Linux内核学习笔记二——进程   一 进程与线程 进程就是处于执行期的程序,包含了独立地址空间,多个执行线程等资源. 线程是进程中活动的对象,每个线程都拥有独立的程序计数器.进程栈和一组进程寄存器 ...

  4. 20135316王剑桥Linux内核学习笔记

    王剑桥Linux内核学习笔记 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 计算机是如何工作的 个人理 ...

  5. linux kernel学习笔记-5内存管理&lowbar;转

    void * kmalloc(size_t size, gfp_t gfp_mask); kmalloc()第一个参数是要分配的块的大小,第一个参数为分配标志,用于控制kmalloc()的行为. km ...

  6. 尚硅谷韩顺平Linux教程学习笔记

    目录 尚硅谷韩顺平Linux教程学习笔记 写在前面 虚拟机 Linux目录结构 远程登录Linux系统 vi和vim编辑器 关机.重启和用户登录注销 用户管理 实用指令 组管理和权限管理 定时任务调度 ...

  7. linux 驱动学习笔记01--Linux 内核的编译

    由于用的学习材料是<linux设备驱动开发详解(第二版)>,所以linux驱动学习笔记大部分文字描述来自于这本书,学习笔记系列用于自己学习理解的一种查阅和复习方式. #make confi ...

  8. Linux系统学习笔记:文件I&sol;O

    Linux支持C语言中的标准I/O函数,同时它还提供了一套SUS标准的I/O库函数.和标准I/O不同,UNIX的I/O函数是不带缓冲的,即每个读写都调用内核中的一个系统调用.本篇总结UNIX的I/O并 ...

  9. Linux命令学习笔记目录

    Linux命令学习笔记目录 最近正在使用,linux,顺便将用到的命令整理了一下. 一. 文件目录操作命令: 0.linux命令学习笔记(0):man 命令 1.linux命令学习笔记(1):ls命令 ...

随机推荐

  1. Spring Mvc 返回机制

    转自:http://jianzh5.iteye.com/blog/1909234 Spring Mvc 有如下的几种返回方式: ModelAndView, Model, ModelMap, Map, ...

  2. BZOJ2351&colon; &lbrack;BeiJing2011&rsqb;Matrix

    2351: [BeiJing2011]Matrix Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 589  Solved: 171[Submit][S ...

  3. 【原创】移除RX filters在C118上面

    » 作者:LSX » 原创文章版权归作者所有,未经作者同意请保留以下声明. » 本文链接:http://blog.lishixin.net/?p=1318 » 转载请注明来源:LSX·Blog » & ...

  4. BZOJ 3670&colon; &lbrack;Noi2014&rsqb;动物园 &lbrack;KMP&rsqb;

    求这玩意: 对于字符串S的前i个字符构成的子串,既是它的后缀同时又是它的前缀,并且该后缀与该前缀不重叠,将这种字符串的数量记作num[i] 对1,000,000,007取模的结果 n≤5,L≤1,00 ...

  5. Android JNI开发之C&sol;C&plus;&plus;层调用JAVA

    一.从C/C++层调用JAVA层代码(无参数调用) //在c代码里面调用java代码里面的方法 // java 反射 // 1 . 找到java代码的 class文件 // jclass (*Find ...

  6. Head First设计模式读书笔记

    阅读指南: 精读一章内容,手工输入一章代码(注1),与书中描述的思想进行印证,实在搞不懂就放过吧.设计模式绝对不会一次就看懂的. 这本书对于理解设计模式很有帮助,就是例子不太符合中国人的思维模式,但是 ...

  7. C&num;嵌套类

    { "children" : [{ "children" : [{ "children" : [], "name" : ...

  8. 基于快速排序的数组划分:2组 3组 K组(sort color)大小写排序 &&num;183&semi; Partition Array

    2组: [抄题]: 给出一个整数数组 nums 和一个整数 k.划分数组(即移动数组 nums 中的元素),使得: 所有小于k的元素移到左边 所有大于等于k的元素移到右边 返回数组划分的位置,即数组中 ...

  9. Centos忘记root密码重置

    entos6.5忘记root密码重置 一,启动服务器按e键 二,按e键选择第二项 三,在ro root前输入single回车保存 四,回到前面一个界面按b键启动 不用密码即可启动输入passwd修改r ...

  10. struts入门

    1.概念