Mono+Jexus讓C#運行在Linux(centos7_x64),學習筆記


本篇目錄

前言

感謝:

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需要的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查看版本信息。

 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


啟動成功后通過http://localhost/info訪問到如下頁面。

至此環境准備工作完成。

部署ASP.NET MVC項目

 Jexus配置

cd /usr/jexus/siteconf/

cp default simple

賦值默認配置修改port、root。

配置修改完成后到/var目錄下創建www文件夾。

cd /var

mkdir www

 

 VS2013創建MVC項目打包發布

使用SecureFX將打包文件夾simple上傳至/var/www/simple目錄。

將jexus停止后重新啟動

/usr/jexus/jws stop

/usr/jexus/jws start

啟動成功后通過http://localhost/info訪問出現如下錯誤信息。

將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。

cd /usr/jexus/

vi jws

取消# export MONO_IOMAP="all"這段內容的前面的#,保存,然后重新啟動jexus。

重啟jws后,重新訪問結果。

 

總結

沒寫完。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM