这几天一直在搞linux下面的.net mvc的部署工作,遇到了很多问题,还好有一些朋友的帮助,问题才得到了解决!
环境:Linux+Mongo+Jexus
希望的结果:直接运行windows+vistualstudio开发的MVC网站
遇到的问题:可以解析,但出现一些运行时(CLR)的错误
截图
这些问题都是来自于微软的程序集与mono程序集的冲突问题,即在MVC网站里对应的程序集,但mono框架也在linux上实现了一套,而两者出现了冲突,引发了这个异常
解决
删除MVC网站自己的程序集:Microsoft.Web.Infrastructure.dll
下面是webap路由引起的问题
解决
把它注释后,运行,老问题没有了,但新的问题来了
解决
这个问题像是MVC没有布局页引起的,我看了一个,layout确实没有,添加后,问题解决
使用EF,连接SQLSERVER数据库
注意:EF5及之前的版本,与.net类库结合紧密,所以部署到mono上是不行的,需要在nuget上进行升级,到EF6.0以后的版本就可以用了,它将EF核心模块从system.data中拿出来,把EF单独提出来了,挺好!解耦了!
问题终于都解决了,再次感谢朋友们的帮助!