CentOS上 Mono 3.2.8运行ASP.NET MVC4经验
周一到周三,折腾了两天半的时间,经历几次周折,在小蝶惊鸿的鼎力帮助下,终于在Mono 3.2.8上运行成功MVC4。在此总结经验如下:
系统平台的版本:
CentOS 6.5 Mono 3.2.8 Jexus 5.5.1
VS2012 英文Ultimate版 由于采用的是英文版本,因此下面图片也都是英文版的界面。
完成工作:制作一个完整的MVC4 Internet应用(本例不含数据库,数据库的访问在以后的文章中谈),将其部署在Linux + Mono + Jexus环境。
步骤:
1、使用 .NET Framework 4生成MVC4;
2、卸载EF;同时删除或注释与EF相关的应用;
3、发布;
按上述步骤的详细操作如下:
1、使用 .NET Framework 4生成MVC4
在生成MVC4时,目前情况下,一定要使用 .NET Framework 4,不要使用 .NET Framework 4.5,否则,由于 .NET Framework 4.5虽然很好很强大,但由于它太新,在Mono上运行至今我未找到有效的完整运行办法,包括Windows Server 2008,如果不安装最新的Service Pack,都无法支持 .NET Framework 4.5。
因此,如下图,在创建新项目时,请注意保证使用 .NET Framework 4(见图片上部中间),
我创建是一个完整的Internet应用,如下图:
2、卸载EF;同时删除或注释与EF相关的应用
从小蝶惊鸿的文章Linux.Net学习手记(5),知道需要卸载EF。到“工具”菜单找到NuGet操作命令窗口或者管理器界面,将EntityFramework卸载。
注意虽然EF卸载可以把Dll引用及根目录下的Web.config文件进行修改,但对于MVC4的Internet应用来说,里面有一些需要使用EF的代码却不会自动卸载,需要手动删除或者注释。因为自己既然想使用ASP.NET MVC4运行在Linux上,就不打算使用MS SQL Server数据库,而是使用MySQL数据库,访问MySQL方式采取ADO.NET。所以,EF相关代码可以全部屏蔽。
首先,把Models目录下的AccountModels文件删除;然后,将Controllers目录下的AccountController删除;
生成解决方案(Ctrl + Shift + B),下面会有一些错误提示(我的有7、8个左右),按照错误提示,把错误提示的代码注释即可,这些代码与创建用户有关,使用了EF;直到生成的解决方案没有错误,在VS下运行,确保通过;
3、发布
周折最多的地方就是发布了。最初,发布到本地文件系统,其设置是这样的:
注意“设置”中选择了两个选项:“发布前删除所有现有文件”和“在发布期间预编译”,结果这样的发布,到Linux上后,出现了奇怪的结果:如果Controller中的Action返回的是字符串,即return "Hello, MVC4";,这样的路由没有问题;但如果返回的是ActionResult,即return View();就会出现错误信息!
小蝶惊鸿参与这个问题的解决,发现如果把第二项“在发布期间预编译”选掉(如下图),生成的发布文件放到Linux后,上述问题就解决了!
至此,一个完整的MVC4应用就可以运行在Linux之上了。
特别需要说明的是:本文经验只适用于Mono 3.2.8,其它版本的Mono可以参考,但无法保证适用性,因为版本差异貌似很大。
本文所述过程详细参考了Linux.Net学习手记(5),在实际操作过程中,发现在自己的这个操作中,即使不在Web.config中加入<globalization culture="zh-CN" uiCulture="en-US"/>,同时也不对Microsoft.Web.Infrastructure.dll进行删除,MVC4运行也是正常的。估计这就是版本不同造成的差别吧。
感谢小蝶惊鸿、张善友和Jexus服务器作者宇内流云,他们的文章对我将.NET应用到Linux上帮助很大。
实际网站在Linux运行成功后,再与大家分享。
转载于:https://www.cnblogs.com/wusir/p/3666478.html
CentOS上 Mono 3.2.8运行ASP.NET MVC4经验相关推荐
- 在CentOS上部署基于dnx/coreclr的ASP.NET 5应用程序
在Ubuntu上写好了一个简单的ASP.NET 5应用程序,尝试将这个程序部署在没有mono环境的CentOS服务器上. 部署步骤如下: 1)安装libuv(KestrelHttpServer需要它) ...
- Azure 上使用 Windows Server Core 运行 ASP.NET Core 网站
点击上方蓝字关注"汪宇杰博客" 导语 微软智慧云 Azure 上虽然早就有 App Service 这种完全托管的 PaaS 服务可以让我们分分钟建网站.但是不自己配一下环境,就不 ...
- 突破常规限制运行asp木马(转)
突破常规限制运行asp木马(转)[@more@] 脚本入侵中往往会上传一个asp木马来进一步扩大权限,或者在肉鸡中留一个asp后门也是一个不错的选择.但是如何让asp木马更加隐匿和强大,从而躲过网管查 ...
- centos下linux运行asp网站搭建配置-mono+nginx
一.首先安装一些需要的软件包 1. 首先更新CentOS上的软件包:yum –y update. 2. 安装一些需要的库: yum -y install gcc gcc-c++ bison pkg ...
- Centos下安装Jexus、.net,上传部署运行asp.net项目
第一次接触安装Jexus,原因是公司要在Linux系统上部署asp.net项目,所以从无到有,从慢慢学习怎么安装部署环境开始 官方网站推荐安装使用独立版,这样就不用单独安装mono.安装独立版的时候m ...
- 在CentOS上使用Jexus托管运行 ZKEACMS
ZKEACMS Core 是基于 .net core 开发的,可以在 windows, linux, mac 上跨平台运行,接下来我们来看看如何在 CentOS 上使用Jexus托管运行 ZKEACM ...
- Linux(CentOS 6.7)下配置Mono和Jexus并且部署ASP.NET MVC3、4、5和WebApi(跨平台)
1.开篇说明 a. 首先我在写这篇博客之前,已经在自己本地配置了mono和jexus并且成功部署了asp.net mvc项目,我也是依赖于在网上查找的各种资料来配置环境并且部署项目的,而其在网上也已有 ...
- Linux(CentOS 6.5)下配置Mono和Jexus并且部署ASP.NET MVC5
1.开篇说明 a. 首先我在写这篇博客之前,已经在自己本地配置了mono和jexus并且成功部署了asp.net mvc项目,我也是依赖于在网上查找的各种资料来配置环境并且部署项目的,而其在网上也已有 ...
- Centos7笔记之Docker-ce上运行ASP.NET CORE程序
一.目标 centos7.6下Docker-ce上运行ASP.NET CORE程序 二.平台 [root@hiibm ~]# uname -r 3.10.0-957.el7.x86_64 [root@ ...
最新文章
- node 修改html文件路径,好程序员前端教程-nodejs如何读取文件夹目录的内容
- 实习日记7.13-7.14
- ip6tables 无法基于端口过滤IPv6 分片报文问题解决
- python—多线程数据混乱问题解决之同步锁
- 使用vl_sift提取图像特征
- 入门深度学习,其实并不难!
- JavaScript高级之正则表达式
- 您的DST大礼包请查收
- 开源 非开源_在开源中吃我们自己的狗粮
- 金蝶如何修改服务器IP,金蝶服务器ip地址修改
- XP系统计算机桌面图标不见,xp系统桌面图标不显示的详细方法
- 开题报告:基于java医院在线预约挂号系统 毕业设计论文开题报告模板
- 测试-------性能测试(一)
- flink ui含义图解
- python画猪猪侠_猪猪侠简笔画怎么画
- 微信小程序在模板语法中使用indexOf失效问题解决办法
- 瑞幸咖啡贵不贵?咖啡不贵,商业却很贵
- 3GPP TS 23501-g51 中英文对照 | 5.3.1 General
- js控制form提交的action
- 【计算机毕业设计】二手车交易网站